跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 本地 WEB 应用实时数据推送除了使用 websocket 还有其他选择吗
未分類
22 11 月 2020

本地 WEB 应用实时数据推送除了使用 websocket 还有其他选择吗

本地 WEB 应用实时数据推送除了使用 websocket 还有其他选择吗

資深大佬 : huyudong1991 3

请教各位大佬一个头疼的问题,由于一些历史原因,我们公司做的测试系统是用 django 做的 web 程序,最近需要做数据实时监控,但是基于 channels 的 websocket 的数据推送延迟有 20ms,数据源的数据大概 10ms,所以推送不及时数据会堆积造成延迟,实际上浏览器和 django 都是本地运行的,想问下大佬们有没有什么途径可以避开 websocket

大佬有話說 (16)

  • 資深大佬 : JeromeCui

    为什么会有 20ms 的延迟?

  • 主 資深大佬 : huyudong1991

    实际测出来的调用时间,大概是 python 后端+tcp 连接的锅

  • 資深大佬 : DoctorCat

    感觉可能是 websocket 使用不当造成的。如果 ws 都不行,那么基于 HTTP 就没有更好的方法了。

  • 資深大佬 : Austaras

    server side event,这个麻烦
    webrtc,这个更麻烦
    轮询或者长链接,这个八成比 ws 延迟更高

    你试试看一次发多组数据呗反正人眼看不出几十毫秒的区别

  • 資深大佬 : assiadamo

    webrtc 其实还好
    可不可以用一些比较轻量的队列呢?比如 mqtt

  • 資深大佬 : thtznet

    SignalR 了解一下

  • 主 資深大佬 : huyudong1991

    @thtznet 貌似兼容 ws,应该不会有本质区别吧

  • 主 資深大佬 : huyudong1991

    @DoctorCat 不太清楚原因,回头找个干净的环境正经测一下

  • 主 資深大佬 : huyudong1991

    @Austaras 现在确实是打算一次多发哈哈

  • 資深大佬 : thtznet

    @huyudong1991 SignalR 和 我们自己实现 webrtc 的核心区别就是,微软的工程师比大部分的”我们”牛,大牛封装过的东西,可能不是最顶级的,但下限是有保证的。毕竟大部分的“我们”只是普通的工程师,混口饭吃罢了。

  • 資深大佬 : Bijiabo

    我前两天也有类似的场景,间隔很巧也是 10ms 左右,看现象是浏览器接收 websocket 效率达不到这么高。特别是短时间内频繁操作。

    建议主写个浏览器外运行的脚本来收消息看下延迟,对比一下

  • 資深大佬 : Austaras

    不是,浏览器渲染一帧就要 1/60s,10 20ms 的延迟很关键吗?一般来说 100ms 一下的延迟是看都看不见的

  • 資深大佬 : tairan2006

    10ms 不是应该考虑网速的影响么。。量级太低了

  • 資深大佬 : ahsjs

    http2

  • 資深大佬 : no1xsyzy

    让我理解下,数据流是这样的
    某上游 –> 你的 Django –> 用户浏览器
    上游发送数据每 10ms 发送一次
    用户浏览器每 20ms 接受一次(串行)
    从而导致消息在你的 Django 上积压

    那么结果很明显,方法有两个:
    1. 丢弃用户侧未能及时接受的数据
    2. 用户侧一次发送不止一份数据

    @Austaras 1/60s 不是 16ms 么?

  • 資深大佬 : ardenchan

    根据上老哥的思路,服务器端给他睡眠个 10ms
    完美解决[手动狗头]

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具