我应该使用REST API,还是使用Socket.io作为地理定位应用程序?

时间:2016-01-11 04:16:33

标签: node.js rest sockets websocket socket.io

我需要跟踪移动的汽车。

我应该每次更改位置时发布位置,并通过套接字发送吗?

或者应该制作一个REST API并发布位置(来自被跟踪的设备)并每隔10秒检查一次(使用跟踪器设备),无论位置是否发生变化?

(该应用程序使用React Native制作)

2 个答案:

答案 0 :(得分:1)

通过频繁更新构建HTTP请求需要更多资源,然后通过websocket发送消息。保持websocket连接被许多用户打开需要比使用HTTP更多的资源。在我看来,答案取决于用户数量,更新频率,是否应用REST约束(没有服务器端会话)以及您使用的HTTP版本(据我所知,HTTP2比HTTP1.1更有效)。我不认为这是我们可以在没有测量的情况下告诉你的事情。

如果要将数据从服务器推送到客户端,情况也是如此。如果您经常这样做并且更新必须几乎立即,那么websocket可能是比轮询更好的选择。如果你做的很少,延迟(轮询频率)可能是几分钟,那么轮询可能会更好。

请注意,我不是负载扩展的专家,这只是一个外行的逻辑。

答案 1 :(得分:0)

我会使用WebSockets。对于小型部署和低频更新,基本上任何工作都可以,但是使用WebSockets,您可以获得长期更好的扩展技术。 (不,我不会考虑这种过早的优化,因为这里的技术选择并不意味着不必要的初始开销。)

无耻插件:如果您正在使用WebSocket,您可以查看一般的Crossbar.io - http://crossbar.io或WAMP(http://wamp-proto.org),它在WebSocket和WebSocket之上提供消息传递机制。应该适合你的用例。我为公司工作,这是公司的核心,但它是开源软件。