我有一个
PHP应用程序(与Symfony2),我需要让我的用户和其他的话,实时(与socket.IO).
我们专注于聊天机制:记录的用户可以与其他记录的用户(在Symfony中使用FOSUserBundle记录)进行通话.当用户发送消息时,必须保存在MysqL中并实时发送给其他用户.所以这个消息链接到我的MysqL数据库中的两个用户(一个发送者和一个接收者). @H_403_2@所以我有两种可能性: @H_403_2@>我用PHP存储消息: @H_403_2@>我有一个事件点击“提交”,并用AJAX调用一个PHP网址
>如果我的PHP返回“OK”(所以他在数据库中正确添加了消息),我发出一个Socket.IO事件 – >让学说处理与用户的数据和symfony
>在NodeJS端,我有一个这个事件的监听器,我通过Socket.IO发送了一个其他的事件 @H_403_2@>我只使用NodeJS: @H_403_2@>如何在PHP和NodeJS端登录我的用户?
>我需要使用不同的数据库来实时获取数据?
>如何在NodeJS和PHP之间共享我的用户? @H_403_2@我不知道什么是最干净的解决方案,如果有人可以帮助我.
谢谢 !
我们专注于聊天机制:记录的用户可以与其他记录的用户(在Symfony中使用FOSUserBundle记录)进行通话.当用户发送消息时,必须保存在MysqL中并实时发送给其他用户.所以这个消息链接到我的MysqL数据库中的两个用户(一个发送者和一个接收者). @H_403_2@所以我有两种可能性: @H_403_2@>我用PHP存储消息: @H_403_2@>我有一个事件点击“提交”,并用AJAX调用一个PHP网址
>如果我的PHP返回“OK”(所以他在数据库中正确添加了消息),我发出一个Socket.IO事件 – >让学说处理与用户的数据和symfony
>在NodeJS端,我有一个这个事件的监听器,我通过Socket.IO发送了一个其他的事件 @H_403_2@>我只使用NodeJS: @H_403_2@>如何在PHP和NodeJS端登录我的用户?
>我需要使用不同的数据库来实时获取数据?
>如何在NodeJS和PHP之间共享我的用户? @H_403_2@我不知道什么是最干净的解决方案,如果有人可以帮助我.
谢谢 !
可以使用像redis这样的通用数据存储来存储用户会话
@H_403_2@检查此链接以供参考
@H_403_2@http://simplapi.wordpress.com/2012/04/13/php-and-node-js-session-share-redi/
@H_403_2@还要检查
@H_403_2@http://www.slideshare.net/leeboynton/integrating-nodejs-with-php-march-2013-1
@H_403_2@这使您可以概述如何使用常见的内存中数据存储和一些示例memcached代码来共享会话.
@H_403_2@的WebSockets
@H_403_2@如果您正在为WebSockets部分使用nodej,我建议不要因为那样您也必须在nodejs中复制您的用户认证逻辑
@H_403_2@您可以在PHP中使用像http://socketo.me/这样的库来做WebSockets
@H_403_2@至于在MysqL中存储消息呢
@H_403_2@您的第一种方法是使AJAX调用将消息存储在数据库中,等待响应,然后发出SocketIO事件将导致聊天体验的缓慢.
我建议您通过NodeJS(异步)将消息存储到MysqL中 @H_403_2@在支票https://github.com/kyle-dorman/ChitChat.js上添加实时聊天功能到您的网站.
我建议您通过NodeJS(异步)将消息存储到MysqL中 @H_403_2@在支票https://github.com/kyle-dorman/ChitChat.js上添加实时聊天功能到您的网站.