![为什么不创建像电子邮件和短信这样的消息应用程序,以便在多个服务提供商之间发送消息?](https://linux22.com/image/1576225/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E5%88%9B%E5%BB%BA%E5%83%8F%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E5%92%8C%E7%9F%AD%E4%BF%A1%E8%BF%99%E6%A0%B7%E7%9A%84%E6%B6%88%E6%81%AF%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%9C%A8%E5%A4%9A%E4%B8%AA%E6%9C%8D%E5%8A%A1%E6%8F%90%E4%BE%9B%E5%95%86%E4%B9%8B%E9%97%B4%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%EF%BC%9F.png)
我可以从 GMail 发送电子邮件到 YahooMail 或 ProtonMail 等。我可以将短信发送到任何手机号码,无论该号码属于沃达丰还是其他电信提供商。
但是,我无法在 WhatsApp 和 Google Hangouts 或 Telegram 或微信等之间发送即时消息。
这种功能缺失是否存在技术障碍或安全问题?我注意到他们中的许多人使用他们自己的协议但难道不应该为即时通讯创建一个像 POP3 或 IMAP 这样的通用协议吗?即时通讯的现状似乎很愚蠢,我无法在我的 Hangouts 帐户中接收 WhatsApp 用户发送的即时消息。
更新:甚至 XKCD 也有一些相关内容:https://xkcd.com/1810/
答案1
那里是一个通用协议,实际上有好几个——其中一个流行的是XMPP(又名 Jabber);另一个是 SIMPLE,它是用于 VoIP 的 SIP 协议的变体。(其中一些最古老的协议,例如讲话,和风, 或者大风甚至 IRC 也考虑到了跨域通信。)相反,商业服务不想使用通用协议,似乎既有技术原因,也有商业原因。
以下是 Jabber 单独使用的一些历史示例:
- 最初是 Google Talk(Hangouts 之前)曾是标准 XMPP 服务,可以使用 XMPP 连接到其他域 - 他们甚至引入了语音/视频 XMPP 扩展(Jingle)。
- 最初,Facebook 聊天曾是一种 XMPP 兼容服务,但不支持服务器间联合(大概是为了让更多的人必须注册 Facebook 帐户)。
- 有一段时间,甚至连 AOL 的 AIM尝试过支持 XMPP 及其(专有但部分开放的)OSCAR 协议。
- Signal 是基于 XMPP 的,但它们有一个博客文章关于不支持此功能的决定。Signal 的主要论点是,除了在这里或那里添加一些小功能外,联合协议很难改变。(例如,对于 SMTP 和 DNS 来说确实如此。)
如果我不得不猜测的话,因为它在互联网诞生时并没有成为一项“杀手级功能”(最终在客户端通过使用多协议聊天应用程序(如 Trillian、Miranda 或 Gaim/Pidgin)而得到“解决”),联合即时消息传递错过了成为核心互联网协议的机会,而仅仅被认为是另一项商业上不可行的功能,只有极少数用户愿意要求。
(IRC 与 SMTP 同时代,在当时拥有庞大的联合网络,那么为什么它没有成为“唯一”的协议呢?因为它的服务器到服务器协议完全地不适合不可信环境,因为它们形成了一个紧密同步的系统,而不是独立域的松散网格。它可以用于纯一对一消息传递,但 IRC 的重点是频道,它在这方面并不擅长。)
最后……垃圾邮件。我记得曾经读过 XMPP 服务器运营商的一些邮件列表帖子,他们将 Google Talk 描述为所有垃圾邮件的主要来源——他们在处理发送方滥用报告方面做得不好,而且他们是一家如此庞大的提供商,以至于您无法完全阻止它,但由于聊天消息与电子邮件的格式(短小、分部分到达、元数据很少),显然也不可能在接收方对其进行适当的过滤。
你能当然,安装 XMPP 服务器 (ejabberd、Prosody) 就像安装电子邮件服务器一样,并且可以[email protected]
通过任何其他人的 XMPP 服务器进行访问。从 Windows 到 Android,许多操作系统都有可用的 XMPP 客户端。(尽管您在提供推送通知时会遇到一些困难,而且如果不这样做,它会耗尽您的电池。)