2015-05-11 9 views
2

我正在構建一個使用Websockets(Socket.io)向服務器發送和接收消息的Chat網站。事實上,我的網站應該使用Websocket,現在我的問題是,其他傳輸像登錄時檢查用戶名或獲取JSON和更新DOM和其他東西,我可以使用相同的技術(Websockets)或我必須使用Ajax?我知道在Websockets的方式,服務器和客戶端將有一個持久的連接。用於小型傳輸的Ajax或Websockets

什麼是最好的方法?使用Websockets不適合這些用途?爲什麼?

+1

如果你正在管理一個網站,包括網頁套接字和聊天系統,你應該熟悉阿賈克斯爲好,一方面是因爲AJAX將會更頻繁地需要在這樣一個網站,因爲使用任何的WebSockets和所有異步請求將對於瀏覽器和服務器都是不必要的開銷。 – Anthony

+1

請記住,websocket不支持捕獲,如果您打算提供任何大小的靜態內容,則應該使用ajax。 – vktr

回答

1

您可以使用websockets。不同之處在於websockets客戶端始終是連接的。你將有一個處理消息的處理程序(它可能只是json blob可能帶有某種messageType字段),當它們從客戶端流入時。

這意味着服務器端處理基本上是相同的,除非通過不同的HTTP請求(通過不同的路由)提供響應,而是通過比switch語句更復雜的事件將請求分派給適當的處理程序。任何結果然後通過具有類似處理機制的websocket發送回客戶端。

一個缺點是不是所有的瀏覽器都支持websocket,所以如果您需要支持JSON的回退路徑,那麼使用fallback JSON處理程序來處理aux請求肯定更容易(因爲您將會編寫它們)。

否則,這些差異可能是邊際的。我會更關心代碼清潔。

相關問題