聊天应用程序 - 最佳方式

时间:2011-11-30 19:04:12

标签: php real-time

我希望我的网站能够进行聊天/群聊功能。站点是使用php / mysql构建的。

我已经实现了客户端聊天屏幕。我对JavaScript / jQuery和AJAX相当不错。 当用户输入消息时,它将使用AJAX调用保存到数据库中。当服务器响应成功时,我使用刚刚输入的消息更新聊天窗口。

现在问题出在这里。 假设两个人A和B正在聊天。 A输入消息,保存到数据库并更新聊天窗口。 现在B怎么会知道A发了一条消息。

我能想到的解决方案是B需要在1或2秒后连续“轮询”服务器。但出于某种原因,我认为这不是正确/最好的方法。

“轮询”服务器是最好的方式,还是有其他我不知道的方法?

我已经准备好用其他语言/技术实现这个(聊天应用程序),唯一的事情就是它应该在我的php网站上运行。

我只是想知道为我的PHP网站设计这个聊天应用程序的最佳方法是什么。

P.S。请不要建议任何第三方聊天库。我已准备好编写任何构建它的代码。

2 个答案:

答案 0 :(得分:2)

如果您对JavaScript感到满意,我认为您应该看看Node.js。 甚至还有一个很好的例子,用于在节点中编写聊天(您可以在github上浏览代码)here

即使您更喜欢在PHP中使用服务器端,我认为此实现的客户端可能是一个很好的指导示例。

答案 1 :(得分:0)

<强>轮询

如果您使用的是http和javascript,这是唯一的方法。 Http(和ajax)是单向的,客户端总是启动与动作的交互。

在没有轮询的情况下实现它的唯一方法是使用第三方插件(flash / silverlight / java),它允许套接字连接或转到浏览器外的本机应用程序。

编辑: 我不知道http推送,但我不相信这是解决这个问题的实用方法。

http://ejohn.org/blog/streaming-http-server-push/