在Apache服务器上使用WebSocket

Edo*_*ach 38 php apache html5 websocket phpwebsocket

随着围绕WebSockets的所有讨论,很难找到关于如何在Google上使用Apache服务器的良好演练.

我们正在开发一个PHP(symfony2)插件,它将不时运行一种聊天实例.我们发现WebSockets在这方面比AJAX更有趣,更标准,更快捷.问题是,我们的团队中没有太多系统管理员资源,我们发现很难收集有关以下事项的良好信息:

  • 我们可以在传统的Apache专用服务器上运行WebSocket实例,如果是,您是否为我们提供了有用的链接?
  • 如果我们需要修改服务器,你会推荐哪种工具知道我们在sysadmin中不太熟练,所以我们不能承担高维护费用.

非常感谢你,

ps:我们将链接回您的博客/网站,因为我们将在我们的devblog上发布有关此部分应用的技术/信息性帖子.

再次感谢你!

leg*_*ter 17

正如@zaf所说,你更有可能找到一个独立的PHP解决方案 - 而不是在Apache中运行的东西.那说有一个apache WebSocket模块.

但是,根本问题在于Apache并未构建为维护许多持久连接.它与PHP一起建立在发出请求并快速发回响应的基础之上.这意味着如果您打开请求并且您需要非常快速地查看水平扩展,那么资源可能会很快耗尽.

我个人认为你有两个选择:

  1. 使用替代的实时Web技术解决方案,并使用队列或短期请求(Web服务)在Web应用程序和实时Web基础结构之间进行通信.
  2. 卸载持久连接的处理以及将实时Web基础结构扩展到实时Web托管服务.我为Pusher工作,我们属于这一类.

对于自托管和托管选项,您可以查看我的实时Web技术指南.


zaf*_*zaf 14

一条路径是使用独立安装的Web套接字服务器.

对于PHP,您可以尝试:http: //code.google.com/p/phpwebsocket/http://github.com/Devristo/phpws/

您还可以尝试其他一些项目.

基本上,您需要上传,解压缩并开始运行该过程.

在前端,您将有javascript连接到特定端口上的服务器.

大多数websocket服务器都有一个演示,可以回复它听到的任何内容,因此这是编写测试代码的好地方.你甚至可以找到一个基本的聊天实现.

棘手的部分是监视Web套接字服务器并确保它顺利,连续地运行.

尝试在尽可能多的浏览器/设备上进行测试,因为这将决定您选择的websocket服务器实现.您需要注意新旧协议.


Sha*_*okh 7

我介绍了另一个websocket服务器:PHP Ratchet(Github).

这是更好,更完整的客户端和服务器端代码列表以及浏览器支持.

请检查此链接.

  • 我们可以看看任何测试吗? (2认同)