我试着用php创建一个聊天应用程序,并使用了下面的逻辑。
1.从user-1获取输入并将其插入表中。
2.每隔5秒运行一个ajax函数,在表中查找新条目并显示给用户-2。
3.反之亦然。
这个过程实在太慢了,而且浏览器经常挂起。
实时聊天应用程序实际上是如何工作的?数据库能否在前端自动触发一个事件,这样我们就不必每隔5秒就命中数据库了?如果是,怎么做?
谢谢。
最佳答案
这种策略被称为投票,在21世纪初对我们很有帮助,但它已经做到了。
一个更好的改进是长轮询。我们请求一个网页,但服务器不会立即响应,而是等待有新的信息可用。当客户机收到新的信息时,它会立即发送一个新的请求,以此类推。
现在在2015年,我们有html5 websockets和html5 sse(服务器发送事件),允许客户端和服务器在数据可用时发送数据(在任何一边)。
您可以考虑在服务器上使用node.js(javascript)或Ratchet(php)。