背景
我们正在编写一个类似Messenger的应用程序。我们已将Websockets设置为收件箱和聊天。
问题
我的问题很简单。使用REST而不是Websockets 从客户端向服务器发送数据时有哪些优缺点? (我现在对更新不感兴趣。)
我们知道REST在消息大小方面具有更高的开销,并且WS是双工的(因此一直打开)。那些我们没有记住的其他事情呢?
答案 0 :(得分:4)
以下是我所知道的权衡摘要。
使用webSocket的原因:
使用REST的原因:
所以,如果你已经有了一个webSocket实现,那么用REST减少它并且对REST可能更好的任何原因都不感兴趣,那么请坚持使用它。 webSocket实现。
相关参考资料:
websocket vs rest API for real time data?
根据您的要求添加评论:
听起来你好像有人告诉你"对"这样做的方式。有理由选择一种方式而不是另一种方式。如果这些原因都不会强迫你采用一种方式而不是另一种方式,那么它只是一种架构选择,你必须了解你正在做的事情的整个背景,并决定哪种架构选择对你更有意义。如果您已经拥有可靠建立的webSocket连接,并且REST的所有优势都不适用于您的情况,那么您可以优化"效率"并通过webSocket连接将数据发送到服务器。
另一方面,如果您希望服务器上有一个简单的API,可以通过其他客户端的Ajax调用来访问,那么您希望您的服务器通过REST支持此操作,这样就可以了这些其他客户端最简单的方法就是执行这一操作。所以,这一切都取决于你的要求驱动你的方向,如果没有特定的驱动理由,你可以自己做一个建筑选择。