0

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

  1. 每当客户端发送消息时,消息首先通过 ajax 发送到服务器,脚本会进行必要的处理并将其记录到数据库中,然后返回 true,然后在成功时将信息返回给客户端,然后是回调函数将消息发送到 websocket 服务器,服务器只是将其中继给接收者。
  2. 每当客户端发送消息时,消息都会发送到 websocket 服务器,websocket 进行处理并发布到数据库,然后在成功时将消息中继给接收者。

我对第二个选项的担忧是在 websocket 服务器上施加了过多的负载,因为它是一个服务于不同客户端的单个脚本.....任何帮助将不胜感激

4

1 回答 1

2

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

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

于 2013-07-05T11:47:16.437 回答