gpt4 book ai didi

php - HTML5 - 共享主机中的 WebSocket

转载 作者:太空狗 更新时间:2023-10-29 13:49:53 25 4
gpt4 key购买 nike

我曾经有一个小型聊天应用程序(几乎可以正常工作),它使用 PHP、jQuery 和 MySQL。用户量很小(只有我的 friend 用)。我为此使用了长轮询方法。

现在,我正在考虑为此使用 HTML5 Websockets,因为它效率更高。而且我的大多数 friend 都在使用谷歌浏览器(已经支持 HTML5)。我已经阅读了一些讨论 HTML5 websockets 的教程。我已经下载了 phpWebSocket来自github。我已经完成了代码。但是自述文件说,监听传入连接的 PHP 页面应该使用命令行中的“PHP -q”运行。所以,我搜索了这个“q”标志的作用。我发现它以安静模式运行页面。那么,当我在安静模式下运行时发生了什么?它会无休止地运行吗?这个正在运行的进程会不会影响系统资源?

这个 PHP 页面应该一直运行。然后只能接受连接。不是吗?

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

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

最佳答案

它应该从命令行运行,因为正如您所怀疑的那样,它旨在无休止地运行。它绑定(bind)到服务器上的套接字并监听传入连接。它不能从浏览器可靠地运行。

“-q”选项告诉它不要输出任何浏览器 header ,例如 X-Powered-By: PHPContent-Type: text/html

只要 PHP 运行,它就会消耗尽可能多的内存。您在没有客户端的情况下启动时的内存占用会因配置而异。连接的客户端越多,您将使用的 cpu、内存和套接字描述符就越多。它使用 select,因此它是高效的套接字处理。

此外,由于您使用的是共享主机,您可能无法使用它,因为您的用户很可能无法绑定(bind)到端口并监听连接。

正如您在演示中看到的那样,将 WebSocket 连接到的 URL 是 ws://localhost:12345/websocket/server.php。除非你有一个能够使用 WebSockets 的网络服务器,否则你将不得不运行像 phpWebSocket 这样的东西作为服务器并在 80 以外的端口上监听。

希望对您有所帮助。

关于php - HTML5 - 共享主机中的 WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8950816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com