如何将php会话数据传递给socket.io?

时间:2014-05-15 18:12:16

标签: php node.js redis socket.io

我正在编写一个应用程序,用户可以同时从多个浏览器登录,并在页面加载时与服务器上的socket.io建立连接。

我希望在redis集中跟踪所有客户端套接字ID socket.id,其密钥对于登录用户来说看起来像userId:???:socketClientIds。在通过ajax调用php脚本之后,我想将SADD套接字客户端id设置为redis集。

因为我将用户id保存在php会话变量$_SESSION['userId']中,所以我可以将这个用户id的值传递给socket.io,这是一种安全/实用的方法,所以我可以将客户端ID添加到集合中?

client.sadd("userId:???:socketClientIds", socket.id)

我无法相信客户为userId提供准确的值,因为它可能是伪造的。

1 个答案:

答案 0 :(得分:1)

如果您在PHP中使用默认会话处理程序,则可以使用groan在节点中解析用户的会话文件。否则,您可能会考虑将MySQLmemcachedRedis用于会话存储,以便从PHP和节点更方便地访问它。