我现在正在进入Web套接字,并且已成功使用在线websockets Pusher(不喜欢它)和Scribble(令人惊讶但停机时间过于频繁,因为它只是一个人运行它)。
我在本地主机上遵循了本教程http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/,效果很好!
我想问的是,如何从上面的文件中设置server.php,以便在在线webhost /共享服务器上作为websocket服务器运行?
或者我是否需要获得VPS(如果是这样,你推荐哪一个,我如何在那里设置websocket服务器,因为我之前从未真正使用过VPS!)
非常感谢您阅读我的问题并回答。我已经阅读了关于套接字的所有其他问题/答案,但还没有找到我上述问题的答案。希望我能在这里找到它!
答案 0 :(得分:4)
这很棘手。
您需要执行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运行在safe mode(很多人都这样做),那么你就不能使用set_time_limit
,时间限制可能是30秒甚至更短。
所以是的,VPS可能是你最好的选择。现在,我自己并不拥有,我不知道什么是好/坏的价格,但我会说HostGator似乎很好。