我有一个 GoDaddy Linux 主机,知道如何为我的 HTML5 网络应用程序运行 websocket 服务器吗?还有其他推荐吗?
我知道 VPS 可以做到,但它很昂贵,有什么 PaaS 解决方案吗?
如果您有共享托管计划,您很可能无法访问套接字,从而无法使用 WebSocket API。
目前最好的 PHP WebSocket 自托管/安装解决方案是Ratchet。
但是,正如@HartleySan 所述,由于需要持久连接,您不太可能被允许在共享计划中使用 WebSocket 解决方案。对于为每个请求分配大量资源的通用 PHP 解决方案尤其如此。Ratchet 可能已经解决了这个问题,我不知道。
恕我直言,PHP 的最佳解决方案是使用托管服务,例如我工作的Pusher 。还有其他可用的实时网络托管解决方案。这意味着您将持久连接卸载到托管服务,并且可以以正常方式使用您的 PHP 堆栈。
也相关:OpenShift,一种 PaaS,写了一篇文章,涵盖了 WebSockets 的挑战。这有助于解释其他托管服务提供商在支持 WebSocket 时遇到的问题。
OpenShift 在预览版中确实支持 WebSocket,因此您可以尝试一下。但是,如果您已经为共享主机付费,这显然是一个问题。如上所述,我建议将托管服务作为最佳解决方案。
您将需要一台虚拟专用服务器。
如果你设置好了,你可以看看socket.io和node.js,它们正是你想要的。有几个示例说明如何在他们的网站上进行设置,另外您可以查看这篇博客文章,其中有一些关于如何使用 html5 的画布和 websockets 设置 node.js 和 socket.io 以获得一些实时性的示例绘图正在进行。
编辑:有第二个选项运行基于 php 的套接字服务器,虽然不如上面的选项好,但它可能(?)可以在没有 vps 的情况下完成。
PHP 具有创建套接字服务器的一些基本函数,这些函数在此处列出。有几个示例说明如何设置它。还有this stackoverflow answer here列出了几个谷歌代码项目,这些项目正是您需要的,例如this。