使用Websocket还是Http来开发移动应用?

3

我将为移动应用程序部署一个Node.js服务器,在移动应用程序中,我使用WebSocket与服务器通信。

我想知道是否可以停止使用http而只使用WebSocket?这种解决方案的优缺点是什么?

2个回答

4

我想知道是否可以停止使用http,只使用websocket?

如果您有自定义的客户端,那么是的,这是完全可能的。

但是,如果您的客户端嵌入在浏览器中,那么不行,因为至少需要通过HTTP执行websocket握手。此外,您需要通过普通HTTP提供主页面(带有嵌入式JavaScript)。除此之外,完全可以完全切换到websockets。

这种解决方案的优缺点是什么?

优点

  • 真正的服务器推送(您可以轻松通知客户端)
  • 使用适当的协议(例如json rpc)比HTTP效率高得多
  • 非常灵活

缺点

  • 它几乎就是TCP,所以您仍然必须在其上构建自定义协议。这实际上可能很难正确实现。特别是如果您想将文本内容(例如json)与二进制内容(例如图像)混合使用。结果可能是您将在websockets上重新实现HTTP。
  • 可能难以良好扩展(再次取决于顶层协议)
  • 与HTTP相比,了解不足
  • 仍然相当新,不像HTTP那样有很多工具

因此,正如您所看到的,大多数关注点来自于它是新的,并且您将不得不对其进行大量手动工作。话虽如此,我个人的意见是去尝试一下。如果您不这样做,那么谁会呢? :) 至少使用websockets提供API并通过HTTP提供静态文件。


0
如果您计划将移动应用程序变成一个完整的网站,那么使用HTTP+WebSocket而不是仅使用WebSocket可能有重要原因。此外,HTTP比WebSockets存在更长时间,因此我会假设对HTTP的支持比WebSocket支持更为广泛,因此,如果您曾经为应用程序创建API,则拥有HTTP可能是一件好事。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接