查询websocket服务器内的数据库

时间:2013-07-04 09:24:42

标签: php ajax websocket

我目前正在开发一个网络应用,我正在开发一个聊天应用功能。我想创建一个使用websockets的实时聊天功能,并将phpwebsocket作为ws服务器,我希望聊天记录在数据库中,我的问题是,以下哪一项将是用户体验方面的最佳实践和Web服务器性能:

  1. 每当客户端发送消息时,消息首先通过ajax发送到服务器,脚本执行必要的处理并将其记录到数据库,然后返回true,然后成功将信息返回给客户端,然后回调函数将消息发送到websocket服务器,服务器只是将其转发给收件人。
  2. 每当客户端发送消息时,消息将被发送到websocket服务器,websocket会处理并发布到数据库,然后成功时将消息转发给收件人。
  3. 我对第二个选项的关注是对websocket服务器施加太多负担,因为它是一个服务于不同客户端的单个脚本.....任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

对于聊天解决方案,只要您了解IE支持有限(IE9无法执行websockets),websockets似乎是更好的方法。

现在,关于你的担心,运行一个poC将是一个很好的方案,但作为一个建议,我认为两种情况下的性能将类似,因为它将由应用服务器处理。如果事实证明数据库访问是一个问题,您仍然可以找到一些解决方案,例如将消息放在某种异步队列上,并让一些单独的进程将它们写入数据库。这只有在成功的DB写入不是关键或响应所需的情况下才有效。