Documentation ¶
Index ¶
- func InitWssService() error
- type WebsocketClient
- func (c *WebsocketClient) CheckAlive() bool
- func (c *WebsocketClient) Close()
- func (c *WebsocketClient) DoAuth()
- func (c *WebsocketClient) DoHeartbeat(now uint64)
- func (c *WebsocketClient) GetClientKey() string
- func (c *WebsocketClient) Handle(message string)
- func (c *WebsocketClient) Read()
- func (c *WebsocketClient) Send(message string)
- func (c *WebsocketClient) Write()
- type WebsocketServer
- func (s *WebsocketServer) AddClient(client *WebsocketClient)
- func (s *WebsocketServer) CheckClientAlive()
- func (s *WebsocketServer) DelClient(client *WebsocketClient)
- func (s *WebsocketServer) GetClient(channel string, userId uint64) *WebsocketClient
- func (s *WebsocketServer) Handler(ctx *gin.Context)
- func (s *WebsocketServer) Start()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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) DoHeartbeat ¶
func (c *WebsocketClient) DoHeartbeat(now uint64)
DoHeartbeat 执行心跳操作
func (*WebsocketClient) GetClientKey ¶
func (c *WebsocketClient) GetClientKey() string
GetClientKey 获取客户端标识
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 (*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
Click to show internal directories.
Click to hide internal directories.