74 lines
2.3 KiB
Go
74 lines
2.3 KiB
Go
|
|
package websocketServer
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
此包是对web_server包的封装,并扩展出websocket相关功能
|
|||
|
|
|
|||
|
|
使用方法如下:
|
|||
|
|
初始化一个WsServer/WssServer
|
|||
|
|
server := NewWsServer(addr string, isCheckIP bool)
|
|||
|
|
或
|
|||
|
|
server := NewWssServer(addr, certFileName, keyFileName string, isCheckIP bool)
|
|||
|
|
|
|||
|
|
其它调用方法见 webServer
|
|||
|
|
|
|||
|
|
websocket扩展方法:
|
|||
|
|
// 注册websocket回调
|
|||
|
|
server.RegisterWebsocketHandler(path string, eventCallback *eventCallbackFuncs, configObj *web_server.HandlerConfig)
|
|||
|
|
server.RegisterRegexWebsocketHandler(path string, eventCallback *eventCallbackFuncs, configObj *web_server.HandlerConfig)
|
|||
|
|
|
|||
|
|
// 设置websocket配置信息(可以设置握手超时/读写缓存/是否允许跨域等)
|
|||
|
|
server.SetUpgrader(upgrader *websocket.Upgrader)
|
|||
|
|
|
|||
|
|
// 获取websocket配置信息
|
|||
|
|
server.GetUpgrader() *websocket.Upgrader
|
|||
|
|
|
|||
|
|
// 设置接收到Ping消息时,是否自动回复Pong信息
|
|||
|
|
server.SetAutoPong(autuPong bool)
|
|||
|
|
|
|||
|
|
// 获取接收到Ping消息时,是否自动回复Pong信息
|
|||
|
|
server.GetAutoPong() bool
|
|||
|
|
|
|||
|
|
// 设置心跳检测信息
|
|||
|
|
server.SetHeartbeatDetectInfo(heartbeatCloseCount int, heartbeatCycle time.Duration)
|
|||
|
|
|
|||
|
|
// 获取心跳检测信息
|
|||
|
|
server.GetHeartbeatDetectInfo() (heartbeatCloseCount int, heartbeatCycle time.Duration)
|
|||
|
|
|
|||
|
|
// 设置广播并发数
|
|||
|
|
server.SetBroadcastConcurrent(n int)
|
|||
|
|
|
|||
|
|
// 允许新连接
|
|||
|
|
server.EnableNewConn()
|
|||
|
|
|
|||
|
|
// 禁用新连接
|
|||
|
|
server.DisableNewConn()
|
|||
|
|
|
|||
|
|
// 消息广播
|
|||
|
|
server.BroadcastMessage(messageType int, data []byte)
|
|||
|
|
|
|||
|
|
// 关闭所有连接
|
|||
|
|
server.CloseAll()
|
|||
|
|
|
|||
|
|
eventCallbackFuncs 回调:
|
|||
|
|
// websocket连接事件
|
|||
|
|
OnConnFunc func(ctx *Context)
|
|||
|
|
|
|||
|
|
// websocket关闭事件
|
|||
|
|
OnCloseFunc func(ctx *Context)
|
|||
|
|
|
|||
|
|
// websocket接收事件
|
|||
|
|
OnMsgFunc func(ctx *Context, msgType int, msgData []byte)
|
|||
|
|
|
|||
|
|
回调参数说明:
|
|||
|
|
ctx - websocket环境,提供了以下方法:
|
|||
|
|
GetWebServerContext() *web_server.Context - 获取web_server环境
|
|||
|
|
GetUserData() interface{} - 获取用户自定义数据
|
|||
|
|
SetUserData(userData interface{}) - 设置用户自定义数据
|
|||
|
|
SendMessage(messageType int, data []byte) (err error) - 发送websocket数据
|
|||
|
|
Close() - 关闭websocket连接
|
|||
|
|
msgType - 接收到的websocket类型
|
|||
|
|
msgData - 接收到的websocket数据
|
|||
|
|
|
|||
|
|
使用示例,见 wsServer_test.go
|
|||
|
|
*/
|