Mic*_*che 15 java websocket netty
我正在考虑将web套接字Netty用于客户端连接到服务器以获取一些信息的应用程序.然后,它们由服务器注册,并且对特定客户端的信息的任何改变将触发包含更新信息的客户端的通知.在这种情况下,通信首先由客户端启动,后者由服务器启动.因此,网络套接字似乎适应了这种情况.
但是,在它启动后,我希望我的客户端能够随时被服务器通知.可能是几周之后的一天.那么,我的问题是使用网络套接字可以实现非常长寿的连接吗?
谢谢
kan*_*aka 10
当然,但有一些警告.
如果您希望您的连接长时间保持活动,那么我建议您在客户端添加一些逻辑,以便在发生onclose事件时重新连接(您需要某种退避以防止在某些情况下出现紧密的重新连接循环).
您可能还希望每5分钟左右发送一条ping消息(一条被忽略的简单消息),以防止空闲超时(这可能发生在网络连接的多个位置).TCP网络堆栈通常设置为终止已空闲2小时的连接,并且ping消息将使它们保持活动状态.浏览器允许实现对应用程序不可见的ping消息,但这是可选的,因此如果要保证此行为,则应在应用程序级别实现自己的消息.
注意:Ping/Pong帧是WebSocket规范的一部分,但尚未通过API提供
WebSocket 的设计目的就是实现长连接。根据客户端的连接方式,这些连接的生命周期可能仍然受到限制,即在零售 DSL 连接上,通常至少每 24 小时强制重新连接一次。
然后,您似乎想要的是在原始 WebSocket 之上发布和订阅消息传递模式(仅提供双向消息传递)。看看:http://wamp.ws(和http://autobahn.ws)。
免责声明:我是 WAMP 和 Autobahn 的原作者,为 Tavendo 工作。
| 归档时间: |
|
| 查看次数: |
5067 次 |
| 最近记录: |