首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
[swoole]代理转发服务器proxy_server检测消息服务器msg_server存活状态的问题?
### 问题描述: 现有代理转发服务器 **proxy_server**(swoole_server) 和多台消息服务器 **msg_server**(swoole_websocket_server)。 **msg_server** 提供 **websocket** 连接服务,并有心跳维持功能。 请问 **proxy_server** 如何监控 **msg_server** 的存活状态? ### 我的设想方案,请指正: 1. **msg_server** 上线通过(swoole_client)主动连接 **proxy_server** 。 2. 消息服务器socket连接到 **proxy_server** 后,**proxy_server** 创建一个 **websocket**(使用框架中的Swoole\Async\Websocket) 连接到 **msg_server**,并监听 **msg_server** 的回包。 3. **proxy_server** 定期向 **msg_server** 发送心跳包维持连接。 通过msg_server心跳响应(如响应超时)来判断 **msg_server** 的存活状态
发布于9年前 · 2 次浏览 · 来自
提问
弱
弱水止三千
### 问题描述: 现有代理转发服务器 **proxy_server**(swoole_server) 和多台消息服务器 **msg_server**(swoole_websocket_server)。 **msg_server** 提供 **websocket** 连接服务,并有心跳维持功能。 请问 **proxy_server** 如何监控 **msg_server** 的存活状态? ### 我的设想方案,请指正: 1. **msg_server** 上线通过(swoole_client)主动连接 **proxy_server** 。 2. 消息服务器socket连接到 **proxy_server** 后,**proxy_server** 创建一个 **websocket**(使用框架中的Swoole\Async\Websocket) 连接到 **msg_server**,并监听 **msg_server** 的回包。 3. **proxy_server** 定期向 **msg_server** 发送心跳包维持连接。 通过msg_server心跳响应(如响应超时)来判断 **msg_server** 的存活状态
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-05-11
卑
卑微的荣耀
websocket协议本身有ping包的支持。 如果是内网的话,可以直接走udp.
赞
0
回复
2017-05-12
w
wsxbl
之前的虎牙推送就是这样设计的,`MsgServer`发起连接到一台`ProxyServer`,`ProxyServer`就可以知道它是否存活。 `MsgServer`定时向`ProxyServer`发心跳包
赞
0
回复
2017-05-12
yupaker
其实除了`MsgServer`需要直接与外网客户端保持连接之外,其他内网的Server不需要使用`WebSocket`协议,推荐使用包头+包体的length_check协议设置。
赞
0
回复
2017-05-17
凸
凸必拿啵万
[@rango ](/u/1)确认下: 1、包头+包体的length_check协议是效率比较高吧。 2、结合swooleserver的心跳维持方案('heartbeat_check_interval', 'heartbeat_idle_time'),MsgServer定时向ProxyServer发心跳包,就达到检测目的吧
赞
0
回复
2017-05-17
A
Alessandro Nesta
是的,推荐使用包头+包体的协议,底层效率很高。MsgServer作为客户端去连接ProxyServer,这样简单一些。
赞
0
回复