我们专注于聊天机制:记录的用户可以与其他记录的用户(在Symfony中使用FOSUserBundle记录)进行通话.当用户发送消息时,必须保存在MysqL中并实时发送给其他用户.所以这个消息链接到我的MysqL数据库中的两个用户(一个发送者和一个接收者).
所以我有两种可能性:
>我用PHP存储消息:
>我有一个事件点击“提交”,并用AJAX调用一个PHP网址
>如果我的PHP返回“OK”(所以他在数据库中正确添加了消息),我发出一个Socket.IO事件 – >让学说处理与用户的数据和symfony
>在NodeJS端,我有一个这个事件的监听器,我通过Socket.IO发送了一个其他的事件
>我只使用NodeJS:
>如何在PHP和NodeJS端登录我的用户?
>我需要使用不同的数据库来实时获取数据?
>如何在NodeJS和PHP之间共享我的用户?
我不知道什么是最干净的解决方案,如果有人可以帮助我.
谢谢 !
检查此链接以供参考
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上添加实时聊天功能到您的网站.