XMPP/Jabber 是否支持像 Skype 一样编辑消息和离线消息?

XMPP/Jabber 是否支持像 Skype 一样编辑消息和离线消息?

我已经习惯在 Skype 上编辑大约 30% 的消息。此外,我希望我的消息最终能够被送达,而不管对方现在是否在线(即,当我们双方都在线时,消息最终会到达)。

尽管如此,我还没有在 Jabber 中看到这些功能。

我应该使用哪些 XMPP 客户端(或哪些协议扩展)来支持方便的聊天?

实际上希望聊天更像 wiki(把链接,还可以编辑同伴的消息、修订历史记录、一些格式),但仅仅使用 wiki 软件是不够的(没有正常的每个联系人的历史记录、没有正常的通知、没有“使用就是打字……”)。

答案1

此外,我希望我的消息最终能够被传递,而不管对方现在是否在线(即,最终当我们都在线时消息将到达)。

XMPP 服务器/客户端通常支持向离线联系人发送消息。以下 XEP 可能相关(可能还有更多):


我已经习惯在 Skype 中编辑大约 30% 的消息。

我不知道 Skype 是如何实现这一点的,但有一个 XEP 用于编辑最后的消息已发送。

XEP-0308:最后一条消息更正

在发送消息时,人们经常会输入错误,然后发送后续消息来纠正错误。此规范允许发送客户端将第二条消息标记为纠正第一条消息。

我认为一个团体已经实现了此功能(但我不确定,从未使用过此客户端)。可能还有其他客户端。

/编辑:正如 Zash 所说,迅速也支持它。

答案2

2009 年,我在 XMPP DevRoom 的 FOSDEM 上就此问题发表过一次颇具争议的演讲。

主要的一点是:即使您的客户端确实支持消息编辑,您也不能保证(除非您正在构建内部网络)接收方会支持它。

Skype 的诀窍在于:Skype 只有一个客户端,来自一个供应商,名为 Skype,直到非常最近,他们开始分发 SkypeSDK,允许汽车制造商、电视制造商等构建 Skype 客户端。然而,即使这些客户端是基于 Skype SDK 构建的,因此,它们中的大多数都必须支持这种编辑。

使用 XMPP,如果您使用公共 Jabber 基础设施,您就无法确定您的朋友使用哪种服务器或客户端,但只有一件事可以确定:它们支持 RFC 3920 和 3921。(是的,我知道这些是旧标准:您不能确定它们是否支持新标准)。

很容易说,您的大多数联系人都是使用 GMail 的 GTalk 联系人,因此 GMail 中 GTalk 不支持的任何功能在 Jabber 世界中几乎都不存在,这包括消息编辑。或者,您可以说,有些 Pidgin / Telepathy 用户与您交谈很多,但也许甚至文件发送对您来说仍然是超出范围的。

在内部网中,情况有所不同,您可以安装支持此功能的客户端(上一个答案的评论中提到了 Swift),但即便如此,您也只能确定内部通信网络。

事实证明,有时从头开始构建 IM 服务比使用 XMPP 更好。

相关内容