goProject/.svn/pristine/91/9188bcf7c01998cc21b4039aceb05c5357a120a9.svn-base
2025-01-06 16:21:36 +08:00

74 lines
2.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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