我正在开发一个聊天应用程序,我遇到了以下想法。我应该对我的服务器使用“多个”长轮询请求,每个请求处理不同的事情。例如,一个用于检查消息,一个用于“正在键入”,一个用于管理联系人列表“在线/离线”等等。或者通过一个通道处理它是否更好?
答案 0 :(得分:3)
我的观点是,你最好使用一个连接,并来回发送JSON消息,例如:
{"user_add": "st3"}
{"user_left": "sneeu"}
{"message": "Good morning!", "from": "st3"}
这些可以在一个数组中一起发送,这样用户就可以收到自上次回复以来的所有内容。
答案 1 :(得分:1)
轮询将成为您最大的带宽/资源浪费,因此请将其保持在最低限度;例如使用适当的日期/ if-modified-since标题发出HEAD请求以允许缓存合理地工作,服务器只返回包含上次更改的日期和时间的标题任何属性对此感兴趣 - 或许甚至比这更微不足道的事情;如果返回的标题暗示有新信息,则仅发出完整的GET。