使用PHP和Nodejs的社交网络 做

使用PHP和Nodejs的社交网络 做,php,apache,node.js,social-networking,long-polling,Php,Apache,Node.js,Social Networking,Long Polling,我正在努力实现的是一个混合服务器来运行和处理我的社交网络网站的需求 建造 我在PHP上创建了所有这些,数据库是MySql,为了实时更新,我使用了AJAX短轮询,它每“x”秒检查一次新消息。但我不希望复查之间有时间间隔,这就是我决定使用长轮询的原因。它是通过Node.js+Socket.io实现的 问题 “NodeApp”构建完成后,我将在使用apache的网站上合并它。我怎样才能将两者结合在一起?例如:页面包括: example.com/home.php#Apache example.com/

我正在努力实现的是一个混合服务器来运行和处理我的社交网络网站的需求

建造 我在PHP上创建了所有这些,数据库是MySql,为了实时更新,我使用了AJAX短轮询,它每“x”秒检查一次新消息。但我不希望复查之间有时间间隔,这就是我决定使用长轮询的原因。它是通过Node.js+Socket.io实现的

问题
  • “NodeApp”构建完成后,我将在使用apache的网站上合并它。我怎样才能将两者结合在一起?例如:页面包括:

    • example.com/home.php#Apache
    • example.com/profile.php#Apache
    • example.com/messages#Node.js
  • 如何按原样加载php页面以及其间的消息,这些消息以node.js格式编写,以便像FB一样进行实时更新。(使用WebSocket,然后返回到支持的任何内容,这是使用[socket.io]完成的。)一个小概述:

  • 我知道的事情
  • 我可以在节点中使用http代理来使用相同的URL,但具有不同的端口
  • 我可以在VPN中使用两个专用ip,一个用于apache,另一个用于Node.js
  • 我不想在两者之间使用iframe
  • 我不想使用不同的端口,比如www.example.com:3000用于node,www.example.com用于apache

  • 现在做的也差不多。我将与你分享我的经验。它可能会派上用场。 我们已经准备好使用社交网络引擎。决定使用(用作传输工具)来“增加”个人信息的一部分

    从一开始,PHP(phpFox)与Node.js的连接就存在问题。这座桥被发现了。此模块允许您使用TCP协议在虚拟服务器之间发送数据(对于许多流行的应用程序,驱动程序dNode在其中)

    下一个问题是数据库。最初,我们使用MySQL和表列表(用于邮件):

    mail | mail | text | user | user | info

    一些测试表明,将MySQL与node.js一起使用是不合理的。因此,决定将其用于“对话”(node.js上编写的个人消息的代码名)非关系数据库。该脚本是由Python编写的(可以使用Python和PHP,但对于此类任务,我更喜欢使用Python—脚本的最佳性能和执行速度),即MongoDB的“peregenal”MySQL数据库创建了这样一个方案:

    消息|对话框|文本

    唯一对话框的集合是存储的消息:

    dialog|u id |所有者|用户| id |查看者|用户| id |最后一条消息|一些信息

    然后一切都清楚了:

  • 当您在
    http://site.com/mail/
    dNode,PHP在node.js一侧传递
    用户id
  • 当node.js获得
    用户id
    时,他用“对话”集合拉出所有“对话”,并绘制主页
  • 当用户打开与用户(例如John)的对话时,将打开一个页面,显示他们的通信
    http://site.com/mail/{John user_id}
  • 使用socket.io可以进行实时对话
  • 就这样。我希望我的经验能对你有所帮助:)


    祝你好运

    ?它会降低我的站点性能吗?因为:“通过Apache传入的每个请求都会导致Apache线程等待/阻塞,直到Node.js进程返回响应。”是的,添加额外代理必然会增加延迟,Apache和Node.js都不擅长这一点。如果有相当数量的静态内容,您可能希望研究在端口80上使用类似的东西,并让该代理同时用于Apache和Node。