buexplain / netsvr-protocol
https://github.com/buexplain/netsvr的协议
Installs: 29
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Language:Go
Requires
- php: >=8.0
README
这套proto
是https://github.com/buexplain/netsvr的网关层与业务层的交互协议。
指令有如下三种类别:
- 网关单向转发给业务进程的指令
- 业务进程单向请求网关的指令
- 业务进程请求网关,网关处理完毕再响应给业务进程的指令
网关单向转发给业务进程的指令
名称 | 编号 | proto | 说明 |
---|---|---|---|
客户连接打开 | ConnOpen | connOpen.proto | 网关转发客户连接打开的信息到业务进程 |
客户连接关闭 | ConnClose | connClose.proto | 网关转发客户连接关闭的信息到业务进程 |
透传客户数据 | Transfer | transfer.proto | 网关转发客户连接发来的数据到业务进程 |
业务进程单向请求网关的指令
名称 | 编号 | proto | 说明 |
---|---|---|---|
更新连接的信息 | ConnInfoUpdate | connInfoUpdate.proto | 每个客户连接都可以在网关中存储:唯一id、主题标签、session信息,该指令用于设置这些信息 |
删除连接的信息 | ConnInfoDelete | connInfoDelete.proto | 删除客户连接的:唯一id、主题标签、session信息 |
广播 | Broadcast | broadcast.proto | 给网关中所有客户连接都发送一条信息 |
组播 | Multicast | multicast.proto | 给指定的某几个客户连接发送一条信息 |
单播 | SingleCast | singleCast.proto | 给指定的某个客户连接发送一条信息 |
批量单播 | SingleCastBulk | singleCastBulk.proto | 将多对单播数据打包成一个块,一次性发送给网关 |
订阅主题 | TopicSubscribe | topicSubscribe.proto | 给客户连接打上一些标签,比如客户加入的群的id |
取消订阅的主题 | TopicUnsubscribe | topicUnsubscribe.proto | 删除客户连接的标签,比如客户退群了,可以将之前标记的群id删除 |
删除主题 | TopicDelete | topicDelete.proto | 从有此标签的客户连接身上删除该标签 |
向多个主题发布一份消息 | TopicPublish | topicPublish.proto | 根据标签找到所有含这些标签的客户连接,并将信息发送给它们 |
向多个主题发布多份消息 | TopicPublishBulk | topicPublishBulk.proto | 多份不同的消息发布到多个不同的主题 |
强制关闭某几个连接 | ForceOffline | forceOffline.proto | 强制关闭某个客户连接,比如客户在多个设备连接到网关,则可用此指令去强制关闭客户其它设备的连接 |
强制关闭某几个空session值的连接 | ForceOfflineGuest | forceOfflineGuest.proto | 强制关闭某个空session值的连接,比如客户连接到网关,但是并没有发起账号密码登录的请求,此时业务侧又不希望此类连接一直逗留在网关中,则可以用该指令去强制关闭它 |
业务进程请求网关,网关处理完毕再响应给业务进程的指令
名称 | 编号 | proto | 说明 |
---|---|---|---|
注册到网关 | Register | registerReq.proto、registerResp.proto | 业务进程向网关发起注册请求,检查注册条件后,会给连接异步写入注册成功的信息、将业务进程注册到管理器,让业务进程接收网关转发的客户数据,如果注册失败,会返回失败的信息 |
撤销注册 | Unregister | - | 业务进程向网关发起取消注册请求,取消注册后,业务进程不会收到网关转发的客户数据 |
检查是否在线 | CheckOnline | checkOnlineReq.proto、checkOnlineResp.proto | 检查某几个uniqId是否在网关中 |
获取全部连接的uniqId | UniqIdList | uniqIdListResp.proto | - |
统计网关的在线连接数 | UniqIdCount | uniqIdCountResp.proto | - |
统计网关的主题数量 | TopicCount | topicCountResp.proto | - |
获取网关的全部主题 | TopicList | topicListResp.proto | - |
获取网关中某几个主题包含的uniqId | TopicUniqIdList | topicUniqIdListReq.proto、topicUniqIdListResp.proto | - |
统计网关中某几个主题包含的连接数 | TopicUniqIdCount | topicUniqIdCountReq.proto、topicUniqIdCountResp.proto | - |
获取连接的信息 | ConnInfo | connInfoReq.proto、connInfoResp.proto | - |
获取网关状态的统计信息 | Metrics | metricsResp.proto | - |
设置并返回限流配置 | Limit | limitReq.proto、limitResp.proto | 先更新限流配置,如果传递的值无效,则会忽略它;再返回网关中的最新的限流配置 |
获取连接打开时,自定义uniqId所需的token | ConnOpenCustomUniqIdToken | connOpenCustomUniqIdTokenResp.proto | 获取连接打开时,自定义uniqId所需的token |