我正在开发一个聊天应用程序,我遇到了以下想法。我应该对我的服务器使用“多个”长轮询请求,每个请求处理不同的事情。例如,一个检查消息,一个用于“正在输入”,一个用于管理联系人列表“在线/离线”等。还是通过一个渠道处理所有这些会更好?
1440 次
2 回答
3
我的观点是,你最好使用一个连接,并来回发送 JSON 消息,例如:
用户加入:
{"user_add": "st3"}
用户离开:
{"user_left": "sneeu"}
收到消息
{"message": "Good morning!", "from": "st3"}
这些可以在一个数组中一起发送,以便用户可以收到自上次响应以来的所有内容。
于 2010-12-06T15:03:48.693 回答
1
轮询将是您最大的带宽/资源消耗,因此请尽量减少;例如,发出带有适当日期/ if-modified-since 标头的 HEAD 请求,以允许缓存合理地工作,服务器仅返回包含对您感兴趣的任何属性的最后更改的日期和时间的标头 - 或者可能是某些东西甚至比这更小;并且仅在返回的标头暗示有新信息时才发出完整的 GET。
于 2010-12-06T15:03:47.040 回答