我创建了一个由客户端轮询驱动的简单聊天服务器。客户端每隔几秒钟发送一次数据请求,并收到任何新消息以及有关其对等方是否仍然连接的信息。
由于客户端在移动平台(iPhone)上运行,我一直在寻找摆脱轮询的方法,这会很快耗尽电池。我读过可以无限期地保持 http 连接打开,但不了解如何在实践中使用这种技术。我也想知道这样的连接是否足够稳定,可以在移动环境中使用。
理想的情况是,服务器仅在发生影响客户端的事件(例如对等方发布消息或离线)时才向客户端发送数据。
是否建议尝试通过 http 完成此操作,或者我是否必须通过 tcp 编写自己的协议?根据我的需要定制 xmpp 有多难(我的聊天服务器有一些我必须轻松实现的特殊功能)。