Cha*_*lie 4 javascript events asynchronous websocket node.js
我目前正在使用einaros的NodeJS WS模块来创建websocket客户端.初始化套接字客户端时,我使用'open'事件来确定连接何时打开,但一旦打开,我怎么能检查它是否仍然打开?
"WebSocket"对象上是否有可用于快速检查套接字状态的属性?
是 - websocketInstance.readyState - 足够吗?
jfr*_*d00 11
socket.readyState将告诉你套接字认为其状态是什么.没有其他更准确的财产,你可以咨询比socket.readyState.
如果您想知道的是套接字何时完成连接并且现在被认为是打开的,那么您可以为该open事件注册事件处理程序.这将告诉您何时完成连接.
如果您希望在套接字关闭或遇到错误时进行实时通知,则可以为事件error或close事件使用事件侦听器.该close事件只是意味着套接字正在关闭,而socket.readyState值现在正在变为关闭.
更有保证是检查套接字的最新方法是首先检查socket.readyState,如果说套接字是打开的,那么你可以将测试数据包发送到另一端,并且只有当你收到来自测试数据包你真的知道套接字是否正常运行.
该socket.io库(建的WebSockets的顶部)正是这样做的,定期发送保活分组并监听响应.如果它在没有响应的情况下持续一段时间,那么它将关闭现有套接字并尝试重新建立新连接(计算先前的连接以某种方式丢失).通过这种方式,socket.io库甚至可以在服务器重启或客户端互联网连接暂时中断后继续存在,因为它将看到连接丢失,然后在其位置透明地重新建立新连接.
| 归档时间: |
|
| 查看次数: |
7281 次 |
| 最近记录: |