Websockets(Socket.io)和身份验证/授权

时间:2012-07-05 23:19:50

标签: ajax http authentication authorization socket.io

我正在给socket.io一个旋转,我很好奇我应该和不应该用websockets做什么。

例如,有没有办法验证websocket(或许在每条消息中包含id?)?假设我正在创建一个类似应用的“谷歌文档”,人们可以在其中创建新文档。我应该使用AJAX来创建新文档而不是websockets吗?这样我就可以使用标准HTTP传输层来执行所有用户授权(检查会话等),然后使用websocket事件简单地ping回页面。好奇人们如何处理这样的情况。

1 个答案:

答案 0 :(得分:0)

我建议在任何你不需要网络套接字的地方使用AJAX。 Web套接字最终会在服务器端产生更多负载(如果Web套接字和闪存套接字不可用,socket.io将负责回退)。简而言之,使用需要维护与客户端的状态/连接的Web套接字。

如果您希望使用网络套接字,那么使用带有socket.io的cookie将是一种可以让您跟踪会话的方法。如果不立即使用socket.io,您可以将req.sessionID(密钥)发送到客户端,将会话信息存储在Redis / Mongo等中。当尝试socket.io连接时,请读取cookie值&将其发送到服务器 - 您可以在其中获取会话存储信息。如果您使用闪存套接字作为后备之一,可能会出现问题。

希望这会有所帮助。