Linux主机上的PHP Websocket服务器

6
我有一个GoDaddy的Linux托管,你知道如何为我的HTML5 Web应用程序运行websocket服务器吗?还有其他推荐吗?
我知道VPS可以做到,但成本很高,有没有PaaS解决方案?

你是在尝试在GoDaddy上运行PHP监听服务器吗?还是在尝试在Javascript中运行WebSocket? - user0000001
如果您正在使用VPS,可以尝试使用node.jssocket.io - Edward A
@Chris 是的,我正在尝试在我已经购买的 PHP 托管中进行监听。考虑到所有最新的浏览器都支持,使用 JS 编写客户端相对容易。 - Neil
我知道VPS是一种选择,但它很昂贵。有没有PaaS解决方案? - Neil
Pubnub是一个非常棒的实时消息服务http://www.pubnub.com/,具体取决于您想要做什么。无需VPS即可使用。 - Craig Blagg
3个回答

1
如果您使用的是共享主机计划,很可能无法访问sockets,因此无法使用WebSocket API。

在共享主机中只有80端口可用吗? - Neil
这是一个更适合向GoDaddy支持团队提出的问题。 - webnoob

1

这需要一个虚拟专用服务器。

如果您已经设置好了,可以查看 socket.ionode.js,它们正是您正在寻找的。它们的网站上有一些设置示例,同时您还可以查看 这篇博客文章,其中包含有关如何使用html5的canvas和websockets设置node.js和socket.io的实时绘图的示例。


编辑:有第二个选项可以运行基于PHP的套接字服务器,虽然不如上述选项好,但可能可以在没有VPS的情况下完成。
PHP具有一些基本函数来创建套接字服务器,这些函数在此处列出。有一些设置示例,例如此处。还有这个stackoverflow答案,其中列出了一些Google代码项目,完全可以满足您的需求,例如此处

VPS的价格比我已经购买的共享主机计划要高,让我看看是否可以抵押来弥补VPS的费用。 - Neil
有一些公司提供便宜的VPS(每月约10美元)。值得一看。 - webnoob
@NeilGhosh,我为您添加了一种无需VPS的选项。 - Edward A

1

目前最好的PHP WebSocket自托管/安装解决方案是Ratchet

然而,正如@HartleySan所说,由于需要持久连接,您不太可能被允许在共享计划上使用WebSocket解决方案。这尤其适用于一般PHP解决方案,它们为每个请求分配大量资源。我不知道Ratchet是否已经解决了这个问题。

在我看来,PHP的最佳解决方案是使用托管服务,例如Pusher,我在那里工作。还有其他实时Web托管解决方案可用。这意味着您将持久连接卸载到托管服务,并可以以正常方式使用PHP堆栈。

另外相关的:OpenShift,一个PaaS,写了一篇文章,涵盖了WebSockets的挑战。这有助于解释其他托管提供商在支持WebSockets时遇到的问题。

OpenShift在预览版中确实支持WebSocket,因此您可以尝试它们。但是,如果您已经为共享托管付款,则显然会出现问题。与上述相同,我建议选择托管服务作为最佳解决方案。


默认情况下,WebSockets 只能在 Node.js 和 Openshift 的自定义 cartridges 中正常工作。 - Anoop saju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接