1

我提出的情况:

我有一个使用 PHP 5.3 和 MYSQL 制作的网站,该网站需要用户登录才能获得访问权限,登录“简单地”检查用户/密码并在域中创建一个 $_SESSION 并使用用户 ID 和其他非个人用户数据。

在 PHP 中,我需要阅读此 $_SESSION 以检测用户是否已登录。

现在,我想用 websockets 创建一个 NodeJS 实时聊天(只能在最后的浏览器中工作,但我在寻找纯 HTML5 站点,而不是像 socketio.js 这样的外部客户端 js),但这是我的问题:

第一个问题我需要在 NodeJS 中获取 $_SESSION['user'],为此我需要从 PHP 到 NodeJS “拉”,使用 $_SESSION[ 发送类似“update-this-user-auth”的消息'user'] 数据,但问题是,首先如何是从 PHP 服务器拉到运行在同一台(或不同台)机器上的 NodeJS 服务器的最佳方式。

第二个问题如何在 NodeJS 中识别用户,因为用户在 PHP 中有 $_SESSSIOn,但我不知道请求是来自用户 nº1、nº32 还是 nº 999999。

对于从 PHP 到 NodeJS 的通信问题,我阅读了一些帖子,并获得了 2 种方法:

CURL 用户,使用 PHP Curl “调用” NodeJS 服务,并将从 PHP 读取的数据发送到 NodeJS 从 PHP 发送消息到 Node.js

DNODE,我发现这个谷歌搜索,看起来不错,但需要一些额外的库,我喜欢让代码清晰,最好是简单。 http://bergie.iki.fi/blog/dnode-make_php_and_node-js_talk_to_each_other/

我感谢所有想法和评论,以提供这两个问题的最佳解决方案。

4

1 回答 1

2

使用PHP
您可以在数据库中保存随机生成的密钥,与用户的 ip、用户 ID 和任何其他会话信息(创建时间、上次活动、到期日期...)相关联。此外,将该密钥也保存在 cookie 中。

使用Node.js
读取 cookie,在 DB 中找到密钥并检查会话是否有效。

因此,基本上,不是将所有信息存储在 PHP 中,而是使用共享存储,例如数据库。

于 2013-07-26T07:37:33.923 回答