在数据库中获取有关更改/插入的通知的标准方法

时间:2013-01-29 08:28:17

标签: php mysql

我正在努力制作针对1000-1500用户的聊天应用程序。目前发生的事情是,一旦我的网页加载,我每秒发出一次ajax请求,检查数据库中是否有新的内容。我想知道这是否是标准做法,或者是否有更有效的方式在发生插入时以某种方式通知服务器。

2 个答案:

答案 0 :(得分:3)

使用WebSockets。或者至少是AJAX民意调查。从1500个客户端每秒发出请求很可能会导致您的服务器死机。

如果您愿意向您的堆栈介绍新内容,请查看http://socket.io/。但如果你只限于PHP,那里面就有PHP websocket解决方案。

答案 1 :(得分:1)

您的方法是一种名为Polling的标准方法。根据客户端数量,这对于具有最新硬件的服务器来说应该是完全正常的(通过HEAD通过AJAX代码表明状态HTTP status请求)。

正如Jan所指出的另一种选择被称为Pushing

  • 优点:减少对服务器的请求。
  • 缺点:需要客户浏览器可能提供或不提供的技术。

如果您选择第二种方法,请查看Server-Sent Events(W3C草案)。

  

此规范定义了一个API,用于打开HTTP连接,以DOM事件的形式从服务器接收推送通知。 API的设计使其可以扩展为与其他推送通知方案(如Push SMS)一起使用。