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