ws-connector

command
v0.0.0-...-4c1c237 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2018 License: MIT Imports: 25 Imported by: 0

README

#ws-connector

设计思路: 单纯类网关连接无状态微服务, 仅用于连接客户端,并提供push接口供内部其它微服务的消息发送给客户端. 本身不做任何逻辑, 甚至ACK也不处理,广播给外部其它微服务处理. 这样保持了与客户端连接的单纯和稳定.

  • 无状态,可启动多个进程用于连接客户端

  • 标准Websocket协议,客户端使用ws://....../ws?xxx=abc&yyy=123连接并传入参数

  • 通过内部RPC调用auth接口检查连接URL中的参数, 是否建立连接

  • 提供push(uids, msgId, msgBody)RPC接口供其它服务器调用

  • 对于Push消息客户端返回的ACK消息,通过RPC广播给外部其它服务器(如sender和cache)使用

  • 客户端连接和断开时,通过RPC通知外部服务器connect和disconnect

  • 侦听PushConnector.syncUsersInfo事件, 间隔3s,每次1w的形式,将当前服务器中所有用户信息RPC广播给外部服务器(online)使用

  • 提供kick(uid, platform)RPC接口供其它服务器调用

  • 相关定义如下:

//RPC定义(带Action为RPC call, 其它为PRC broadcast)
cWsConnectorActionPush       = "ws-connector.push"              //in: pushMsgStruct || out: null, err
cWsConnectorActionCount      = "ws-connector.count"             //in: null || out: count, err
cWsConnectorActionMetrics    = "ws-connector.metrics"           //in: null || out: metricsStruct, err
cWsConnectorActionUserInfo   = "ws-connector.userInfo"          //in: userIDStruct || out: []ClientInfo, err
cWsConnectorInPush           = "ws-connector.in.push"           //pushMsgStruct
cWsConnectorInKickClient     = "ws-connector.in.kickClient"     //cidStruct
cWsConnectorInKickUser       = "ws-connector.in.kickUser"       //userIDStruct
cWsConnectorOutConnect       = "ws-connector.out.connect"       //ClientInfo
cWsConnectorOutDisConnect    = "ws-connector.out.disconnect"    //ClientInfo
cWsConnectorInSyncUsersInfo  = "ws-connector.in.syncUsersInfo"  //null
cWsConnectorOutSyncUsersInfo = "ws-connector.out.syncUsersInfo" //ClientInfo
cWsConnectorOutAck           = "ws-connector.out.ack"           //ackStruct
cWsConnectorInSyncMetrics    = "ws-connector.in.syncMetrics"    //null
cWsConnectorOutSyncMetrics   = "ws-connector.out.syncMetrics"   //metricsStruct

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL