我一直在研究显示“在线用户”计数器的最佳方式,该计数器已更新到第二个,试图避免连续的 ajax 轮询。
显然,WebSockets 似乎是最好的选择。由于这是一个 Intranet,我将要求使用 Chrome 或 Safari,因此不应该存在兼容性问题。
我一直在阅读一些关于 WebSockets 的文章,因为我是新手,我想我非常了解它是如何工作的。
我不太确定如何用 PHP 实现它。Node.js 似乎是这样做的自然选择,因为它具有“始终运行”的性质,但这不是一个选择。
为什么我最困惑的是 PHP 运行并且当它完成时它结束的事实。如果PHP结束了,socket连接不会丢失吗?或者如果 php 重新运行,它会通过 ip 回溯用户?(我认为不太可能)
然后我找到了这个库 http://code.google.com/p/phpwebsocket/ 但它似乎有点旧(它提到只有 Chrome nightly 与 WebSockets 兼容)
有一点说“从命令行,运行 server.php 程序以侦听套接字连接。” 这意味着我需要 SSH,这是许多共享托管计划所没有的。
我的另一个疑问是该库的源代码中的另一行:
set_time_limit(0);
这是否意味着 php 文件将连续运行?这允许在共享主机中吗?据我所知,所有主机在超时 1 o2 分钟后都会杀死 php。
我有一个在线用户的 mysql 表,我想使用 PHP 通过 websocket 向这些在线用户广播登录用户的数量。有人可以帮助我或向我指出如何实现这一目标的更好信息吗?
谢谢