大众cc的最高时速:CometD JavaScript的握手
来源:百度文库 编辑:偶看新闻 时间:2024/04/29 02:27:27
原文地址:
http://cometd.org/documentation/cometd-javascript/handshake
CometD JavaScript的握手
sbordet在周一,2009年6月29日 - 14:40提交。
JavaScript的CometD API:握手
调用handshake()(或init())启动与Bayeux服务器的通信。
Bayeux handshake执行两个任务:
客户端和服务器协商使用传输的类型,
传输一旦谈判成功,服务器通知客户端请求的详细时序。
JavaScript CometD API的几种方法,是异步的方法:它会立即返回,在Bayeux握手步骤完成之前。
请注意:
调用handshake(),有handshake()返回时,并不意味着您已经完成了与服务器的握手。
握手可能会失败,有以下几个原因:
输入错误的服务器的URL
传输不能成功地进行谈判
服务器拒绝握手(例如,是错误的身份验证凭据)
在服务器崩溃
有网络故障
因此,写这样的代码,它不是一个好主意,:
/ /配置和握手
cometd.init(“http://localhost:8080/cometd”);
//发布一个通道
cometd.publish({'/ foo', {foo:'bar'});
这不是一个好主意,因为没有实际上保证成功联系Bayeux服务器就调用publish()(我们在后面的章节会讲到)。
由于API是异步的,你没有办法同步知道握手失败(即handshake()返回一个是错误代码,或抛出一个异常)。
所以,即使握手成功,你可能仍然是“断开”Bayeux服务器,例如,因为服务器刚刚成功握手后崩溃。
幸运的是有一个关于Bayeux协议的通知方式去了解消息交换的细节:通过特殊频道(称为元数据频道)听众。
这是有关订阅的部分解释。