从聊天应用程序的服务器检索消息的最佳方法是什么

时间:2014-11-12 04:55:13

标签: javascript websocket socket.io long-polling server-push

我正在编写一个从头开始的聊天应用程序,我正在尝试找出从服务器实时检索的消息的最佳方法。我做了大量的研究,并提出了这个:我可以使用网络套接字,我已经看到它成功之前完成了。我可以使用长轮询,但我想知道这是否会给服务器带来更大的压力,或者可能不适合聊天应用程序。我可以每秒轮询服务器,但这似乎是浪费带宽。建议?谢谢!

2 个答案:

答案 0 :(得分:2)

websocket协议非常适合聊天应用程序,有几个原因。

  • 正如您已经确定的那样,连续轮询服务器非常浪费资源。
  • 使用传统HTTP需要使用庞大的标头,这会浪费宝贵的带宽。 Websockets允许精简消息传递。
  • 最重要的是,对于您的应用程序,与HTTP不同,websockets是双向的,这意味着您的服务器可以独立地向您的聊天客户端发送消息。使用HTTP,所有通信必须由客户端启动,并且您只能使用请求 - 响应类型的通信。使用websockets,如果您的客户端在聊天服务上收到来自其他用户的消息,则服务器可以立即并独立地将该信息转发给预期的收件人。

所以回答你的问题。你绝对应该使用网络套接字。由于您缺少传统的标题,因此在格式化通过连接发送的消息时,您将不得不做一些工作,但效率非常值得设置消息传递模型所需的最小努力。

答案 1 :(得分:0)

什么?您是否需要在专用服务器上的数据库中? 我会推荐Ajax与JavaScript或jQuery,但我喜欢自己的编码,所以JavaScript。 如果您来回显示数据,我可能会使用MySQL。

例如,如果匹配当前查询最后一个已知查询,则不会更新。 如果按类型排序,如果不匹配从最后到租金匹配的循环将是DESC。无论如何... 希望这可以帮助您决定应该使用什么。

虽然这是游戏,博客,论坛,与MySQL / SQL聊天的常见现象。