http - 如何创建一个不由轮询驱动的聊天服务器?

标签 http networking chat xmpp instant-messaging

我创建了一个由客户端轮询驱动的简单聊天服务器。客户端每隔几秒发送一次数据请求,并收到任何新消息以及有关其对等方是否仍处于连接状态的信息。

由于客户端在移动平台 (iPhone) 上运行,我一直在寻找摆脱轮询的方法,轮询会很快耗尽电池电量。我读过可以无限期地保持 HTTP 连接打开,但还不明白如何在实践中利用这种技术。我还想知道这种连接是否足够稳定,可以在移动环境中使用。

理想的情况是,服务器仅在影响客户端的事件发生时(例如对等点发布消息或离线)才向客户端发送数据。

尝试通过 http 完成此操作是否可取,或者我是否必须通过 tcp 编写自己的协议(protocol)?根据我的需要自定义 xmpp 有多难(我的聊天服务器有一些我必须轻松实现的特殊功能)。

最佳答案

关于http - 如何创建一个不由轮询驱动的聊天服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1173032/

相关文章:

php - 带有房间的实时聊天项目的数据库架构

java - FutureTask 和 HttpSession 同步

linux - 构造arp包发送到本地linux没有回复

java - 通过流为我的项目发送对象不起作用,套接字已关闭

黑莓:聊天应用程序中的表情符号

ios - 适用于 iOS 应用程序的 QuickBlox

apache - 反向代理重定向 http 到 https

http - 使用不同的查询字符串缓存图像(S3 签名 url)

javascript - AngularJs $http.get : Sending array of objects as params

Java 屏幕抓取使用套接字?