打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CometD JavaScript 断开连接

 

CometD JavaScript 断开连接

 

 

sbordet 提交于星期二,2009/6/30-15:15

 

 

JavaScript CometD API 断开连接

 

 

JavaScript CometD 实现,在网络或Bayeux 服务器发生故障的情况下执行自动重新连接。

在配置部分中介绍了重新连接参数。

 

 

短暂网络故障

 

 

在临时网络故障的情况下,客户端通过 /meta/connect 频道的消息进行通知(请参阅元数据通道部分),主要是把该消息的successful字段设置为 false (请参阅例子)。

然而,Bayeux 服务器可能会保持客户端的状态,并在网络恢复时 Bayeux 服务器可能会表现得好像没有发生过什么事一样。

在这种情况下,客户端只是重建长轮询,但任何在网络故障时由客户端发布的消息将不会自动重发(但是有可能通过/meta/publish频道得到发布失败的通知,)。

 

 

长时间的网络故障或服务器故障

 

 

如果网络故障是足够长的时间,Bayeux 服务器超时丢失客户端,并删除与其相关联的状态。这些同样发生在 Bayeux 服务器崩溃时(除了所有客户端丢失的状态的进程)。

在这种情况下,重新连接机制在客户端上的执行以下步骤:

一长轮询重新连接请求,但是,服务器将拒绝它,并返回402::Unknown client错误消息

一尝试握手请求,服务器通常会接受它,并分配新的客户端

在成功的再次握手后,一长轮询重新建立

 

 

如果您注册元数据频道,应注意这些步骤,因为重新连接可能涉及与服务器的多个消息交换。

 

 

断开连接

 

 

调用 JavaScript CometD API disconnect() ,返回的消息被发送到 Bayeux 服务器,以便它可以清除任何与该客户端相关联的状态。

涉及与 Bayeux 服务器通信的所有方法,它都是异步方法:它会立即返回,在Bayeux服务器已收到断开连接请求之前。

如果服务器不能可达,(因为它崩溃或由于网络故障),JavaScript CometD 实现将停止任何重新连接尝试和清理任何本地的状态。

一般安全地忽略调用 disconnect()成功与否:在任何情况下断开客户端,清理其本地状态,如果服务器尚未可达,它将设置该客户端超时并为客户端清理出任何服务器端状态。

 

 

提示

如果用Firebug调试您的应用程序,并关闭服务器,您将在Firebug控制台中看到尝试重新连接。

要停止这些尝试,只是在 Firebug 命令行中键入: dojox.cometd.disconnect()(用于Dojo)或$.cometd.disconnect() (用于 jQuery)。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
浏览器与服务器的消息通信
Comet简介
9个前端开发必备的浏览器插件/在线工具
打印机故障5
实战 Comet 应用程序开发
使用 Google Page Speed 给你的网站提速
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服