我希望我的网站能够进行聊天/群聊功能。站点是使用php / mysql构建的。
我已经实现了客户端聊天屏幕。我对JavaScript / jQuery和AJAX相当不错。 当用户输入消息时,它将使用AJAX调用保存到数据库中。当服务器响应成功时,我使用刚刚输入的消息更新聊天窗口。
现在问题出在这里。 假设两个人A和B正在聊天。 A输入消息,保存到数据库并更新聊天窗口。 现在B怎么会知道A发了一条消息。
我能想到的解决方案是B需要在1或2秒后连续“轮询”服务器。但出于某种原因,我认为这不是正确/最好的方法。
“轮询”服务器是最好的方式,还是有其他我不知道的方法?
我已经准备好用其他语言/技术实现这个(聊天应用程序),唯一的事情就是它应该在我的php网站上运行。
我只是想知道为我的PHP网站设计这个聊天应用程序的最佳方法是什么。
P.S。请不要建议任何第三方聊天库。我已准备好编写任何构建它的代码。
答案 0 :(得分:2)
如果您对JavaScript感到满意,我认为您应该看看Node.js。 甚至还有一个很好的例子,用于在节点中编写聊天(您可以在github上浏览代码)here。
即使您更喜欢在PHP中使用服务器端,我认为此实现的客户端可能是一个很好的指导示例。
答案 1 :(得分:0)
<强>轮询强>
如果您使用的是http和javascript,这是唯一的方法。 Http(和ajax)是单向的,客户端总是启动与动作的交互。
在没有轮询的情况下实现它的唯一方法是使用第三方插件(flash / silverlight / java),它允许套接字连接或转到浏览器外的本机应用程序。
编辑: 我不知道http推送,但我不相信这是解决这个问题的实用方法。