我是一个没有经验的 PHP 程序员,我正在使用 Codeigniter 创建一个网站,该网站在 webhost 的服务器上运行。除其他功能外,该网站应包含多个聊天室,中型群组(+/- 25 人)可以在其中进行实时聊天会话。聊天室的数量取决于网站的受欢迎程度,因此聊天功能应该是可扩展的,我希望准备好托管成百上千的聊天室。
我发现这样做的一种方法是使用 ajax 短轮询,即将每条消息保存在数据库中并每秒轮询数据库。我认为这种方法不能很好地扩展(因为它对数据库来说似乎非常密集),所以我认为使用长轮询方法会更好,例如带有 node.js 的 websockets。
我没有使用套接字的经验,据我所知,node.js 要求您使用自己的服务器(例如本地主机)。理想情况下,我想将 node.js 的功能集成到我的网站中,以便将每条即将到来的消息推送给所有其他聊天用户,并且每隔一段时间(例如每 10 分钟)将消息发送到数据库,以便以后可以查看聊天记录。
这似乎不可能,因为 node.js 需要在您自己的服务器上独立运行。在使用 webhost 的服务器时,我该怎么做才能使我的聊天与 websockets 一起工作?这可能吗?我应该使用不同的网络服务器而不是网络主机,还是应该坚持短轮询?提前谢谢了。