我正在構建一個使用Websockets(Socket.io)
向服務器發送和接收消息的Chat網站。事實上,我的網站應該使用Websocket
,現在我的問題是,其他傳輸像登錄時檢查用戶名或獲取JSON
和更新DOM
和其他東西,我可以使用相同的技術(Websockets
)或我必須使用Ajax?我知道在Websockets
的方式,服務器和客戶端將有一個持久的連接。用於小型傳輸的Ajax或Websockets
什麼是最好的方法?使用Websockets
不適合這些用途?爲什麼?
我正在構建一個使用Websockets(Socket.io)
向服務器發送和接收消息的Chat網站。事實上,我的網站應該使用Websocket
,現在我的問題是,其他傳輸像登錄時檢查用戶名或獲取JSON
和更新DOM
和其他東西,我可以使用相同的技術(Websockets
)或我必須使用Ajax?我知道在Websockets
的方式,服務器和客戶端將有一個持久的連接。用於小型傳輸的Ajax或Websockets
什麼是最好的方法?使用Websockets
不適合這些用途?爲什麼?
您可以使用websockets。不同之處在於websockets客戶端始終是連接的。你將有一個處理消息的處理程序(它可能只是json blob可能帶有某種messageType字段),當它們從客戶端流入時。
這意味着服務器端處理基本上是相同的,除非通過不同的HTTP請求(通過不同的路由)提供響應,而是通過比switch語句更復雜的事件將請求分派給適當的處理程序。任何結果然後通過具有類似處理機制的websocket發送回客戶端。
一個缺點是不是所有的瀏覽器都支持websocket,所以如果您需要支持JSON的回退路徑,那麼使用fallback JSON處理程序來處理aux請求肯定更容易(因爲您將會編寫它們)。
否則,這些差異可能是邊際的。我會更關心代碼清潔。
如果你正在管理一個網站,包括網頁套接字和聊天系統,你應該熟悉阿賈克斯爲好,一方面是因爲AJAX將會更頻繁地需要在這樣一個網站,因爲使用任何的WebSockets和所有異步請求將對於瀏覽器和服務器都是不必要的開銷。 – Anthony
請記住,websocket不支持捕獲,如果您打算提供任何大小的靜態內容,則應該使用ajax。 – vktr