微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NodeJS与PHP应用程序和用户会话

我有一个 PHP应用程序(与Symfony2),我需要让我的用户和其他的话,实时(与socket.IO).
我们专注于聊天机制:记录的用户可以与其他记录的用户(在Symfony中使用FOSUserBundle记录)进行通话.当用户发送消息时,必须保存在MysqL中并实时发送给其他用户.所以这个消息链接到我的MysqL数据库中的两个用户(一个发送者和一个接收者).

所以我有两种可能性:

>我用PHP存储消息:

>我有一个事件点击“提交”,并用AJAX调用一个PHP网址
>如果我的PHP返回“OK”(所以他在数据库中正确添加了消息),我发出一个Socket.IO事件 – >让学说处理与用户的数据和symfony
>在NodeJS端,我有一个这个事件的监听器,我通过Socket.IO发送了一个其他的事件

>我只使用NodeJS:

>如何在PHP和NodeJS端登录我的用户
>我需要使用不同的数据库来实时获取数据?
>如何在NodeJS和PHP之间共享我的用户

我不知道什么是最干净的解决方案,如果有人可以帮助我.
谢谢 !

可以使用像redis这样的通用数据存储来存储用户会话

检查此链接以供参考

http://simplapi.wordpress.com/2012/04/13/php-and-node-js-session-share-redi/

还要检查

http://www.slideshare.net/leeboynton/integrating-nodejs-with-php-march-2013-1

这使您可以概述如何使用常见的内存中数据存储和一些示例memcached代码来共享会话.

的WebSockets

如果您正在为WebSockets部分使用nodej,我建议不要因为那样您也必须在nodejs中复制您的用户认证逻辑

您可以在PHP中使用像http://socketo.me/这样的库来做WebSockets

至于在MysqL中存储消息呢

您的第一种方法是使AJAX调用将消息存储在数据库中,等待响应,然后发出SocketIO事件将导致聊天体验的缓慢.
我建议您通过NodeJS(异步)将消息存储到MysqL

在支票https://github.com/kyle-dorman/ChitChat.js添加实时聊天功能到您的网站.

原文地址:https://www.jb51.cc/php/139320.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐