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就是WsID
  • INITWS: 用于判断是否是初始化连接的请求,开发者可以通过这个参数来在初始化时做一些操作
  • BREAK: 连接断开时为true,开发者可通过这个参数在断开连接时进行一些操作