HTML5 - 共享主机中的WebSocket

Akh*_*ran 8 php html5 websocket

我曾经有一个小聊天应用程序(几乎正常工作),它使用PHP,jQuery和MySQL.用户量非常小(只有我的朋友使用它).我使用长轮询方法.

现在,我正在考虑使用HTML5 Websockets,因为它效率更高.我的大多数朋友也在使用Google Chrome(已经支持HTML5).我已经阅读了一些关于HTML5 websockets的教程.我从github 下载了phpWebSocket.我已经完成了代码.但自述文件说,应该使用命令行中的"PHP -q"运行侦听传入连接的PHP页面.所以,我已经搜索了这个"q"标志会做什么.我发现它以安静模式运行页面.那么,当我在安静模式下运行时会发生什么?它会无休止地运行?这个运行过程会影响系统资源吗?

这个PHP页面应该整个运行.然后只接受连接.不是吗?

我正在与HostGator共享托管包.他们也允许cron工作.我目前的聊天应用程序(使用长轮询方法)将所有消息插入数据库.当用户轮询时,它将从数据库中搜索任何新消息,然后输出它们(如果有的话).

所以,我有点卡在这里.:(

dre*_*010 5

它应该从命令行运行,因为如您所怀疑的那样,它应该无休止地运行.它绑定到服务器上的套接字并侦听传入的连接.它无法从浏览器可靠地运行.

"-q"选项告诉它不要输出任何浏览器标题,如X-Powered-By: PHPContent-Type: text/html

只要它运行,它将消耗PHP所需的内存.启动时没有客户端的内存占用量会因配置而异.连接的客户端越多,您将使用的cpu,内存和套接字描述符就越多.它使用select,因此它是有效的套接字处理.

此外,由于您在共享主机上,您可能无法使用它,因为您的用户很可能无法绑定到端口并侦听连接.

正如您在演示中所看到的,将WebSocket连接到的URL是ws://localhost:12345/websocket/server.php.除非您有一个能够使用WebSockets的Web服务器,否则您必须运行类似于服务器的phpWebSocket并侦听80以外的端口.

希望有所帮助.