2012-07-05 180 views
1

我給socket.io一個旋風,我很好奇,我應該和不應該用websockets做什麼。Websockets(Socket.io)和認證/授權

例如有沒有一種方法來驗證websocket(包括每個消息中的id?)?比方說,我正在創建一個「Google文檔」,就像人們可以在其中創建新文檔的應用程序一樣。我應該使用AJAX創建新文檔而不是websockets?這樣我就可以使用標準的HTTP傳輸層來完成所有的用戶授權(檢查會話等),然後用websocket事件簡單地回顯頁面。好奇人們是如何處理這樣的情況的。

回答

0

我會建議使用AJAX無論你不絕對需要網絡套接字。 Web套接字最終在服務器端創建更多的負載(socket.io將負責在web套接字&閃存套接字不可用的情況下進行回退)。簡而言之,使用Web套接字,您需要維護到客戶端的狀態/連接。

如果你想使用網絡套接字,使用cookie和socket.io將是一種方法,可以讓你跟蹤你的會話。如果不立即使用socket.io,則可以將req.sessionID(密鑰)發送給客戶端,將會話信息存儲在Redis/Mongo等中。嘗試socket.io連接時,請閱讀cookie值&將其發送給服務器 - 您可以在其中獲得會話存儲信息。如果您使用閃存套接字作爲後備之一,可能會有問題。

希望這會有所幫助。

+0

感謝您提供cookies + socket.io的提示。這是一個內部實時應用程序,所以回退並不是什麼問題 – Msencenb 2012-07-06 01:13:06