我想要实现的是运行和处理社交网络网站需求的混合服务器。
我已经在PHP上创建了所有这些,而数据库是MySql,对于实时更新,我使用了AJAX短轮询,它在每个'x'秒内检查新消息。但我不希望重新检查之间的时间差距,这就是为什么我决定使用长轮询。它是通过Node.js + Socket.io实现的。
构建“NodeApp”之后,我将在我的网站上使用apache进行组合。我怎样才能将它们整合在一起?例如:页面是:
我如何按原样加载我的php页面,以及在node.js中写入的消息之间的实时更新就像FB一样。(使用websockets然后回退到支持的任何内容,这是使用[socket.io])一个小概述:http://postimg.org/image/p3vq4tkvr/
答案 0 :(得分:1)
现在就做同样的事情。我将与您分享我的经验。它可能会派上用场。 我们准备好了phpFox的社交网络引擎。决定使用Node.js(用作传输socket.io)对个人消息进行“调整”部分。
从一开始,PHP(phpFox)与Node.js的连接出现了问题。找到了这座桥 - dNode。此模块允许您使用TCP协议在虚拟服务器之间发送数据(驱动程序dNode用于许多流行的programming languages。)
下一个问题 - 数据库。最初,我们使用MySQL列表(邮件):
mail | mail_text | user | user_info
一些测试表明,将MySQL与node.js一起使用是不合理的。因此,决定使用“Dialogues”(在node.js上编写的个人消息的代码名称)非关系数据库MongoDB。该脚本是由Python编写的(可以使用和PHP,但是对于这样的任务,我更喜欢使用Python - 最好的性能和脚本执行速度),“peregenal”MySQL数据库到MongoDB,创建了这样一个方案:
messages | dialogs | texts
唯一对话框的集合是存储的消息:
dialog_id | owner_user_id | viewer_user_id | last_message | some_info
然后一切都很清楚:
http://site.com/mail/
dNode的帮助下打开页面时,PHP会传递侧节点上的user_id
。user_id
时 - 他用“对话框”集合拉出所有“对话”并绘制主页面。http://site.com/mail/{John user_id}
。就是这样。我希望我的经验可以帮助你:)
祝你好运!