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 */