【发布时间】:2015-05-26 20:29:34
【问题描述】:
我们正在 Android 上构建一个聊天应用程序。我们正在考虑使用 HTTP REST API 发送出站消息。想知道与使用 WebSockets 或 XMPP(这似乎更像是传输聊天消息的事实上的标准)相比,它是一种好方法还是有什么缺点?
我能想到的一些优点/缺点是:
- HTTP 端点很容易在服务器端水平扩展(这是主要问题)
- 与 HTTP 相比,Websockets 的学习曲线更加陡峭
- 与 WebSocket 相比,HTTP 消息的负载更大
根据本文档,似乎 Facebook 最初也使用 AJAX 来处理聊天消息:
https://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf
【问题讨论】:
-
Websocket 或 XMPP 是一个不错的方法。您可以使用kaazing.com/products/kaazing-websocket-gateway,也可以使用 SIP(创建 p2p)。我不是专家,我正在发表评论。
-
在 Facebook 演示中,他们说他们使用了 Comet 和 ajax。我还没有看到他们说他们在哪里使用 REST。很明显,他们今天仍然使用 ajax(或者更确切地说是一些 aja*)用于 Web 客户端。
-
为什么不使用 HTML5 websocket?它比定期执行 POST/GET 好得多,这使聊天与实时聊天有点偏离。