在 Apache 服务器上使用 WebSocket

2022-08-30 12:28:32

随着WebSockets的嗡嗡声,很难找到一个很好的演练,如何在Google上的Apache服务器上使用它们。

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

  • 我们是否可以在传统的Apache专用服务器上运行WebSocket实例,如果是,您是否有有用的链接?
  • 如果我们需要修改服务器,你会建议什么样的工具,知道我们在系统管理员方面不太熟练,所以我们负担不起高维护b***。

谢谢

ps:我们将链接回您的博客/网站,因为我们将在我们的开发博客上发布有关我们应用程序这一部分的技术/信息文章。

再次感谢!


答案 1

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

然而,根本问题是Apache在构建时并没有考虑到维护许多持久的连接。它与PHP一起建立在发出请求并快速发送响应的想法之上。这意味着,如果您保持请求处于打开状态,并且需要非常快速地进行水平扩展,则资源可能会很快用完。

就个人而言,我认为您有两种选择:

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

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


答案 2

一种方法是使用独立安装的 Web 套接字服务器。

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

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

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

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

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

棘手的部分是监视Web套接字服务器并确保它平稳连续地运行。

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


推荐