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