首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >丢失连接xmpp丢失消息

丢失连接xmpp丢失消息
EN

Stack Overflow用户
提问于 2014-02-04 16:23:13
回答 2查看 4.1K关注 0票数 1

我回答了这个问题

设备断开时XMPP上丢失的消息

但没有答案。

当某个连接由于某种网络问题而丢失时,服务器无法识别它,并继续向永久丢失的断开连接的接收者发送消息。

我有一个解决方案,在这个解决方案中,我从服务器上ping客户机,当客户端断开连接时,服务器可以在10秒后识别它,并在队列中保存更多的消息,以防止它们丢失。

我的问题是,通过使用我知道psi和其他许多xmpp客户端正在使用的其他方式,可以实现100%的失败保存消息传递。

在ios方面,我使用的是xmppframework

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-04 18:09:38

一种方法是在服务器上使用高级消息处理 (AMP);另一种方法是在客户端使用讯息递送收据

前者需要启用AMP的服务器实现,启动客户端必须能够告诉服务器它需要什么样的交付状态报告(它需要如果无法传递,将返回一个错误。)。请注意,无论如何这并不是防弹的,因为目标客户端失去与服务器的连接时和服务器机器上的TCP堆栈检测到这一点并将其告知服务器之间存在一个窗口:在此窗口期间,服务器认为发送给客户端的所有内容都可以发送,因为TCP层中没有消息边界的概念,因此如果服务器进程设法将消息节的XML填充到TCP连接的系统缓冲区中,它认为要发送的部分--一旦TCP堆栈说连接丢失了,它就无法知道它的流中哪些位没有到达接收器。

后者是防弹的,因为客户端依赖于关于消息接收的显式通知。不过,这确实增加了人们的口舌。作为回报,这个特性不需要服务器支持-它只在客户端实现。

票数 1
EN

Stack Overflow用户

发布于 2014-04-24 09:11:55

和XEP-0198一起去享受.

http://xmpp.org/extensions/xep-0198.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21557814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档