2012-05-25 68 views

回答

2

Ajax和Web套接字都允許客戶端將信息推送到服務器。然而,網絡套接字在允許服務器將數據推送到客戶端而無需客戶端請求它的能力方面優越。

假設您在瀏覽器中玩在線國際象棋遊戲,並且您在等待您的對手進行移動。使用傳統的Ajax,您必須重複ping服務器(或使用長輪詢,請參閱下面的鏈接),詢問您的對手是否做出了新的舉動。藉助Web套接字,服務器可以在發生這種情況時立即告訴您,而不必經常問。

有一些技術可以讓Ajax展現Web Sockets的一些優點。這類技術通常被稱爲「Comet」。

要專門解決您的問題:如果您的服務器不支持Web套接字,您將不得不嘗試使用Comet技術來優化服務器推送數據的Ajax。如果沒有Web Socket服務器進行通信,則無法在客戶端上使用Web套接字。

+0

我一直在使用各種形式的彗星技術。只是想知道是否可以使用Web套接字模擬和檢索標準的頁面調用。 (即80端口http) – user1416526

+0

不,它不能。實際上,我認爲Web Socket協議是專門設計用來防止這種情況發生的,因爲HTTP端口可以擴展爲接收Web Scoket請求,所以它必須能夠分辨出差異。 – apsillers