2013-06-24 44 views

回答

24

那麼,網絡套接字(通過socket.io)的主要事情之一,規定ajax缺乏服務器推動。因此,如果您想了解服務器上的新事件(例如,不同的用戶向您發送了消息),那麼使用ajax時,您需要執行服務器輪詢,這意味着您可以在相對頻繁的週期性循環中發送Ajax請求。大多數情況下,服務器迴應說沒有什麼新鮮事,但偶爾有新的東西時,客戶可以瞭解它。

Web套接字允許服務器主動將通知推送到客戶端而無需輪詢。因此,如果您的應用程序具有需要在服務器上啓動並且只顯示在瀏覽器中的任何類型的信息,那麼網絡套接字就是更好的解決方案。

  • 在請求/響應模型
    • AJAX或web插座基本上相等,傳統的形式帖還行
  • 提交事件到服務器中的事件流模型數據提交到所述服務器
    • 網絡套接字是最好的,可以通過ajax進行仿真
  • 推動事件從服務器到瀏覽器
    • 網絡套接字是最好的,可以通過ajax長輪詢,閃存等模擬(socket.io有幾個後備它可以嘗試使用,如果真正的網絡套接字不可用)。
  • 舊的瀏覽器,有些移動平臺
    • web套接字支持是不存在的,所以AJAX是你的後備
+0

感謝您的快速回復。所以除非你有充分的理由不要使用網絡套接字進行主動溝通。網絡套接字是否有缺點? –

+0

對於web套接字的瀏覽器支持還不如ajax完整,尤其是在移動設備上。像所有新技術一樣,圍繞它們的工具和社區知識並不像ajax那樣成熟。在Web套接字工作之前,代理和Web服務器也需要特定的配置,這也會帶來部署方面的挑戰。 –

+0

@PeterLyons所以如果我正在製作通知系統,那麼網絡套接字是最好的,對不對? –

相關問題