Connector
HAS内置的Connector
HAS内置了一个hwebconnector,用于处理外部请求
注册
使用
提示
注意新注册的service需要编写service代码和相关配置文件,请参考自定义Service
启用websocket
修改配置文件中的WebSocketEnabled为true,如下:
[WebConnector]
AddressField = 'IP' # 用于记录ip地址字段
AppKey = ''
AppSecret = ''
BodyLimit = 999999 # 请求体大小限制 MB
Disabled = false
Lang = ''
Packer = 'JsonPacker' # 解包
Port = 8989 # 端口
SignMethod = ''
Timeout = 0 # 超时 秒
Tls = false # 开启tls
TlsCertPath = '' # TLS cert证书路径
TlsKeyPath = '' # TLS 证书路径
WebSocketEnabled = true # 是否开启websocket
编写相关代码
其中的core.SlotWsRequestBase结构体如下:
type SlotWsRequestBase struct {
SlotRequestBase
WsID *string `json:"WsID"`
INITWS *bool `json:"INITWS"`
BREAK *bool `json:"BREAK"`
}
相较于普通的http请求,core.SlotWsRequestBase多了2个参数,其作用如下
WsID: 一个随机字符串,可以从this.gateway.Connectors()["web"].(*hwebconnector.Connector).WsConnMap获取到*websocket.Conn
而WsConnMap结构为map[string]*websocket.Conn, 其key就是WsIDINITWS: 用于判断是否是初始化连接的请求,开发者可以通过这个参数来在初始化时做一些操作BREAK: 连接断开时为true,开发者可通过这个参数在断开连接时进行一些操作