android - 通过 xmpp 或 websocket 进行即时消息传递

标签 android ios tcp websocket xmpp

我有一个项目需求,我想在 android/iphone 中制作一个即时通讯应用程序,将来可能会支持 voip 和视频聊天。

现在我有两个选择

1) xmpp - 它是 IM 的应用层协议(protocol),已有将近 10 年的历史,它有很多扩展支持 voip 或者可能是视频聊天、在线/离线状态和许多其他功能。 whatsapp,fb,Skype等所有大公司都接受它

我还听说谷歌因为漏洞已经放弃了这个协议(protocol)。

2) websocket - 它是 tcp 层协议(protocol),通过单个 tcp 连接提供全双工通信,它是新的,在 2011 年由 IETF 标准化。我不知道这个协议(protocol)是否主要用于 IM。但我知道它可以像在 tcp 层中那样完成。除了 4 种方法(即 onOpen、onClose、onMessage 和 onError)之外,我没有看到或听到任何 web socket 的特性/扩展。所以这意味着如果我选择这个,我必须制定自己的在线/离线状态方法(可能每“x”秒/分钟发送一个帧)、voip、消息传递信息和其他功能等。

我很困惑,在开发、服务器处理成本、安全性、 session 处理管理、浏览器支持等方面,我选择哪个,xmpp 还是 web socket。

如果我对这 2 个协议(protocol)有任何错误,请纠正我。

提前致谢

最佳答案

Google 未在 XMPP 中发现漏洞。

您可以使用 draft-ietf-xmpp-websocket 通过 WebSockets 使用 XMPP ,这将很快成为一个 RFC。

关于android - 通过 xmpp 或 websocket 进行即时消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23597203/

相关文章:

android - 有什么方法可以计算滚动结束位置

java - 比较两个集合以确定第一个集合是否是其他集合的子集

java - 提高简单 TCP 客户端/套接字上的数据传输速度

python 立即发送 TCP/IP 数据

sockets - Erlang gen_tcp :recv(Socket, 长度)语义

android - Android 中的缩放动画会降低图像质量

android - fragment 中的 MapView(蜂窝)

ios - 如何在可变高度的 UITableView 中根据内容确定 UIWebView 的高度?

ios - Objective-c 清除缓存 NSCachedURLResponse

ios - 从 appdelegate 展示一个 View Controller