【发布时间】:2019-03-09 13:45:33
【问题描述】:
我正在 react-native 上制作聊天应用程序。我为此使用 socket.io,但 socket.io 有时无法成功。我想每 3 秒更改一次发送请求到服务器端。
我只发送一个聊天ID的请求
哪个最好?如果我每 3 秒使用一次发送请求,服务器端会出现任何问题
【问题讨论】:
标签: node.js react-native server socket.io
我正在 react-native 上制作聊天应用程序。我为此使用 socket.io,但 socket.io 有时无法成功。我想每 3 秒更改一次发送请求到服务器端。
我只发送一个聊天ID的请求
哪个最好?如果我每 3 秒使用一次发送请求,服务器端会出现任何问题
【问题讨论】:
标签: node.js react-native server socket.io
socket.io 比任何轮询 HTTP 请求机制具有更好的扩展性和更好的性能。如果运行良好,它的响应时间也将超过 3 秒——它可能看起来并不长,但实际上用户可能会注意到它。
如果您的聊天应用程序适用于少数用户,那么轮询机制更容易实现并且应该可以正常工作。
如果您打算将应用程序扩展到大量用户,您将需要 socket.io 或类似的订阅/推送机制来连接客户端。
【讨论】:
也许长轮询(不是轮询,它是不同的行为,通过长轮询,api 调用可以保持挂起直到响应可用)是一种选择,但 WebSocket 更可取。 响应更快,服务器端资源更少,带宽更少,您可以订阅多个流等等。
您可以在这里评估一些指标:
参考:https://blog.feathersjs.com/http-vs-websockets-a-performance-comparison-da2533f13a77
【讨论】: