使用PHP与Node Js通信,反之亦然

时间:2013-07-26 07:26:40

标签: php node.js

我投入了情况:

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

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

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

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

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

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

CURL用户,使用PHP Curl“调用”NodeJS服务,并将数据从PHP发送到NodeJS Sending messages from PHP to Node.js

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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