ws

package
v0.0.0-...-352e39c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitWssService

func InitWssService() error

InitWssService 启动WebSocket服务

Types

type WebsocketClient

type WebsocketClient struct {
	ID             uint64          // 客户端ID
	Addr           string          // 客户端地址
	Connection     *websocket.Conn // 客户端连接会话
	Outbox         chan []byte     // 待发箱,等待发送的数据
	Channel        string          // 客户端连接通道,用于区分不同设备端连接
	UserId         uint64          // 客户端连接用户ID
	Auth           bool            // 是否鉴权成功
	ConnectionTime uint64          // 连接时间,首次连接时间
	HeartbeatTime  uint64          // 心跳时间,上次心跳时间
}

WebsocketClient Websocket 客户端

func NewWsClient

func NewWsClient(conn *websocket.Conn, channel string, userId uint64) *WebsocketClient

NewWsClient 创建客户端

func (*WebsocketClient) CheckAlive

func (c *WebsocketClient) CheckAlive() bool

CheckAlive 检查是否存活

func (*WebsocketClient) Close

func (c *WebsocketClient) Close()

Close 关闭客户端连接

func (*WebsocketClient) DoAuth

func (c *WebsocketClient) DoAuth()

DoAuth 执行鉴权

func (*WebsocketClient) DoHeartbeat

func (c *WebsocketClient) DoHeartbeat(now uint64)

DoHeartbeat 执行心跳操作

func (*WebsocketClient) GetClientKey

func (c *WebsocketClient) GetClientKey() string

GetClientKey 获取客户端标识

func (*WebsocketClient) Handle

func (c *WebsocketClient) Handle(message string)

Handle 处理收到消息

func (*WebsocketClient) Read

func (c *WebsocketClient) Read()

Read 读取客户端数据

func (*WebsocketClient) Send

func (c *WebsocketClient) Send(message string)

Send 发送信息

func (*WebsocketClient) Write

func (c *WebsocketClient) Write()

Write 向客户端写入数据

type WebsocketServer

type WebsocketServer struct {
	Addr       string                        // 服务端地址
	Clients    map[string]*WebsocketClient   // 客户端映射池
	Users      map[uint64][]*WebsocketClient // 用户客户端关系
	Lock       sync.RWMutex                  // 客户端映射池读写锁
	Register   chan *WebsocketClient         // 客户端连接
	UnRegister chan *WebsocketClient         // 客户端断开
	Outbox     chan []byte                   // 待发箱,等待发送的广播数据
}

WebsocketServer Websocket 服务端

var Server *WebsocketServer

func NewWsServer

func NewWsServer(port int) *WebsocketServer

NewWsServer 创建服务端

func (*WebsocketServer) AddClient

func (s *WebsocketServer) AddClient(client *WebsocketClient)

AddClient 添加客户端

func (*WebsocketServer) CheckClientAlive

func (s *WebsocketServer) CheckClientAlive()

CheckClientAlive 检查客户端是否存活

func (*WebsocketServer) DelClient

func (s *WebsocketServer) DelClient(client *WebsocketClient)

DelClient 移出客户端

func (*WebsocketServer) GetClient

func (s *WebsocketServer) GetClient(channel string, userId uint64) *WebsocketClient

GetClient 获取指定通道和UserID的连接

func (*WebsocketServer) Handler

func (s *WebsocketServer) Handler(ctx *gin.Context)

Handler Gin处理函数 /ws/:channel/:token

func (*WebsocketServer) Start

func (s *WebsocketServer) Start()

Start 启动服务端

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL