php - 在 Apache 服务器上使用 WebSocket

标签 php html apache websocket phpwebsocket

随着 WebSockets 的流行,很难找到关于如何在 Google 的 Apache 服务器上使用它们的好的演练。

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

  • 我们可以在传统的 Apache 专用服务器上运行 WebSocket 实例吗?如果可以,您是否有对我们有用的链接?
  • 如果我们需要修改服务器,你会推荐什么样的工具,因为我们在系统管理员方面不太熟练,所以我们无法承担高昂的维护费用。

非常感谢,

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

再次感谢您!

最佳答案

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

但是,根本问题在于 Apache 的构建并未考虑到维护许多持久连接。它与 PHP 一起建立在发出请求并快速发回响应的思想之上。这意味着如果您将请求保持打开状态并且您将需要非常快速地研究水平扩展,那么资源会很快用完。

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

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

对于自托管和托管选项,您可以查看我的 realtime web tech guide .

关于php - 在 Apache 服务器上使用 WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11334320/

相关文章:

javascript - 如何使用 PHP 和 JQuery AJAX 在 <div> 标签中检索和插入 MySQL 数据?

php - 检测 PHP mysqli 中的空列值

javascript - 为什么我的 Canvas 线这么小而且迷失方向?

html - 如何为 Bootstrap datetimepicker 定义特定颜色

apache - webhost中的tomcat域名

php - Laravel:查询中间表

php - 使用 SSL 和站点名称更改的 URL 重定向

javascript - 如何在jquery中的esc按键上隐藏div数组

apache - 共享 httpd.conf

apache - .htaccess 中 $1 与 %1 之间的差异