原文地址: http:///documentation/cometd-javascript/handshake
CometD JavaScript的握手 sbordet在周一,2009年6月29日 - 14:40提交。 JavaScript的CometD API:握手 調(diào)用handshake()(或init())啟動(dòng)與Bayeux服務(wù)器的通信。 Bayeux handshake執(zhí)行兩個(gè)任務(wù): 客戶端和服務(wù)器協(xié)商使用傳輸?shù)念愋停?/span> 傳輸一旦談判成功,服務(wù)器通知客戶端請(qǐng)求的詳細(xì)時(shí)序。 JavaScript CometD API的幾種方法,是異步的方法:它會(huì)立即返回,在Bayeux握手步驟完成之前。 請(qǐng)注意: 調(diào)用handshake(),有handshake()返回時(shí),并不意味著您已經(jīng)完成了與服務(wù)器的握手。 握手可能會(huì)失敗,有以下幾個(gè)原因: 輸入錯(cuò)誤的服務(wù)器的URL 傳輸不能成功地進(jìn)行談判 服務(wù)器拒絕握手(例如,是錯(cuò)誤的身份驗(yàn)證憑據(jù)) 在服務(wù)器崩潰 有網(wǎng)絡(luò)故障 因此,寫這樣的代碼,它不是一個(gè)好主意,: / /配置和握手 cometd.init(“http://localhost:8080/cometd”); //發(fā)布一個(gè)通道 cometd.publish({'/ foo', {foo:'bar'}); 這不是一個(gè)好主意,因?yàn)闆]有實(shí)際上保證成功聯(lián)系Bayeux服務(wù)器就調(diào)用publish()(我們在后面的章節(jié)會(huì)講到)。 由于API是異步的,你沒有辦法同步知道握手失?。?/span>handshake()返回一個(gè)是錯(cuò)誤代碼,或拋出一個(gè)異常)。 所以,即使握手成功,你可能仍然是“斷開”Bayeux服務(wù)器,例如,因?yàn)榉?wù)器剛剛成功握手后崩潰。 幸運(yùn)的是有一個(gè)關(guān)于Bayeux協(xié)議的通知方式去了解消息交換的細(xì)節(jié):通過特殊頻道(稱為元數(shù)據(jù)頻道)聽眾。 這是有關(guān)訂閱的部分解釋。 |
|