我很驚訝,我無法找到任何問題。你如何統一實現WebSocket的REST?我正在構建一個Web應用程序,並希望通過Ajax調用使用websockets。使用socket.io作爲API
首先,你如何表示一個URI?其次,你如何表示HTTP方法(GET,PUT,POST,...)?
socket.emit('set', ...)
socket.emit('get', ...)
socket.emit('delete', ...)
我很驚訝,我無法找到任何問題。你如何統一實現WebSocket的REST?我正在構建一個Web應用程序,並希望通過Ajax調用使用websockets。使用socket.io作爲API
首先,你如何表示一個URI?其次,你如何表示HTTP方法(GET,PUT,POST,...)?
socket.emit('set', ...)
socket.emit('get', ...)
socket.emit('delete', ...)
這是沒有意義的。使用WebSocket的重點在於繞開HTTP請求所帶來的開銷。您想要在流HTTP上重新實現HTTP。
在大多數情況下,它會導致更多的開銷,因爲如果客戶端不支持WebSockets或Flash套接字,它將回退到HTTP長輪詢。這意味着你有一個虛假的HTTP請求和實際的HTTP請求傳遞數據。
使用正確的工具進行工作。
此鏈接可能說明你正在嘗試做的事:
How can Socket.io and RESTFul work together?
這是沒有錯的希望有信息,如GET,設置,刪除。重用您現有的API結構並不錯 - 您仍然需要路由,並且URI可以通過您在服務器端的路由進行分析,以與GET/SET/DELETE的控制器相對應。
如:
socket.emit('set', {uri: 'https://stackoverflow.com/questions/6339393/how-can-socket-io-and-restful-work-together', params: {someKey: "someValue}).
這並不利用的WebSockets什麼做的好 - 雙向通信,但這確實可以對數據流的請求,這可能會更快取決於你多久輪詢你的數據。
祝你好運,並保持冷淡!
我將使用網頁上的websockets反正實時的東西 – sdfadfaasd 2012-01-03 23:50:37