【问题标题】:Which one is best for chat app ? Web socket or Send request every 3 seconds哪个最适合聊天应用程序? Web 套接字或每 3 秒发送一次请求
【发布时间】:2019-03-09 13:45:33
【问题描述】:

我正在 react-native 上制作聊天应用程序。我为此使用 socket.io,但 socket.io 有时无法成功。我想每 3 秒更改一次发送请求到服务器端。

我只发送一个聊天ID的请求

哪个最好?如果我每 3 秒使用一次发送请求,服务器端会出现任何问题

【问题讨论】:

    标签: node.js react-native server socket.io


    【解决方案1】:

    socket.io 比任何轮询 HTTP 请求机制具有更好的扩展性和更好的性能。如果运行良好,它的响应时间也将超过 3 秒——它可能看起来并不长,但实际上用户可能会注意到它。

    如果您的聊天应用程序适用于少数用户,那么轮询机制更容易实现并且应该可以正常工作。

    如果您打算将应用程序扩展到大量用户,您将需要 socket.io 或类似的订阅/推送机制来连接客户端。

    【讨论】:

    • 谢谢您的评论先生。我的 socket.io 问题有时会发送相同的消息 5 次,因为我更喜欢更改 socket.io
    • @A.Emre:这是一个不同的问题。如果您想解决它,您应该提出一个新问题并提供有关该问题的一些详细信息 - 当它发生时,您已经查看过什么来尝试自己解决它。当前问题现已得到解答。
    • 谢谢你的一切:)
    • @A.Emre 没问题
    【解决方案2】:

    也许长轮询(不是轮询,它是不同的行为,通过长轮询,api 调用可以保持挂起直到响应可用)是一种选择,但 WebSocket 更可取。 响应更快,服务器端资源更少,带宽更少,您可以订阅多个流等等。

    您可以在这里评估一些指标:

    参考:https://blog.feathersjs.com/http-vs-websockets-a-performance-comparison-da2533f13a77

    【讨论】:

    • 谢谢您的评论先生。我的 socket.io 问题有时会发送相同的消息 5 次,因为我更喜欢更改 socket.io
    • 这可能是一个前端问题,你在同一个事件上添加了多个监听器,我每年建立 2-3 个聊天,所以我可以确认 socket.io 会让你的生活更轻松。
    • 谢谢你所做的一切:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多