9

我现在开始使用 Web Sockets,并且已经成功地使用了在线 websockets Pusher(不喜欢它)和 Scribble(很棒,但是停机时间太频繁了,因为它只有一个人在运行它)。

我在本地主机上遵循了本教程http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/,效果很好!

我想问的是,如何从上述文件中设置 server.php 以在在线 webhost/共享服务器上作为 websocket 服务器运行?

或者我是否需要获得一个 VPS(如果需要,你推荐哪一个以及我如何在那里设置 websocket 服务器,因为我以前从未真正使用过 VPS!)

非常感谢您阅读我的问题和回答。我已在此处阅读有关套接字的所有其他问题/答案,但尚未找到上述问题的答案。希望我在这里找到它!

4

1 回答 1

5

这很棘手。

您需要执行server.php脚本并且它需要永远不会退出。如果您对共享服务器具有 SSH 访问权限,则可以像在屏幕截图上一样执行它,并使用以下内容使其作为后台任务运行nohup

$ nohup php server.php
nohup: ignoring input and appending output to `nohup.out'

调用它(使用 SSH 连接)后,您可以退出并且进程将继续运行。脚本打印的所有内容都将存储到nohup.out中,您可以随时阅读。

如果您没有 SSH 访问权限,并且实际执行 PHP 脚本的唯一方法是通过 Apache 作为页面请求的结果,那么您可以简单地使用浏览器转到该页面而永远不要关闭浏览器。但是总有一天会超时,您和 Apache 之间的连接将关闭,从而有效地停止server.php脚本执行。

在之前的那些情况下,许多共享主机不允许脚本无限期地运行。你会注意到有这一行server.php

set_time_limit(0);

这告诉 PHP 没有时间限制。如果主机让 PHP 在安全模式下运行(很多都这样做),那么您将无法使用set_time_limit,并且时间限制可能是 30 秒甚至更少。

所以是的,VPS 可能是你最好的选择。现在,我自己不拥有一个,我不知道什么是好/坏的价格,但我会说HostGator看起来不错。

于 2013-06-15T16:04:51.287 回答