2G 弱网,可接受 3~5 秒延迟, HTTP 每秒轮询 和 WebSocket 断线立即重连 哪个稳定性更好一些? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
edis0n0
V2EX    程序员

2G 弱网,可接受 3~5 秒延迟, HTTP 每秒轮询 和 WebSocket 断线立即重连 哪个稳定性更好一些?

  •  
  •   edis0n0 2022-12-15 00:11:12 +08:00 3524 次点击
    这是一个创建于 1042 天前的主题,其中的信息可能已经有所发展或是发生改变。

    传输内容是一些文本(每分钟数据量在 1KB 左右),和一些图片(平均大小 80KB 左右,如果用 WS 的话应该要传链接走 HTTP 下载以免堵塞 WS )

    24 条回复    2022-12-16 12:07:40 +08:00
    DefoliationM
        1
    DefoliationM  
       2022-12-15 00:22:12 +08:00
    WebSocket 吧,http 可能还要重新进行 tcp 三次握手。
    edis0n0
        2
    edis0n0  
    OP
       2022-12-15 00:28:54 +08:00
    原始需求是服务器推送指令,部分指令客户端需要向服务器上传 80KB 左右的返回数据(二进制)
    因为弱网,用的是简单对称加密,无 TLS
    edis0n0
        3
    edis0n0  
    OP
       2022-12-15 00:31:15 +08:00
    延迟不敏感,5 秒以内都可以,稳定性比较重要(不能出现掉线 1 分钟客户端才检测到,然后才开始重连的情况)
    wwbfred
        4
    wwbfred  
       2022-12-15 00:35:11 +08:00 via iPhone
    简单想了下,除非 HTTP 轮询每次都重新握手,否则应该差不多,建议用 ws 。
    edis0n0
        5
    edis0n0  
    OP
       2022-12-15 00:36:34 +08:00
    @wwbfred #4 ws 有没有可能出现连接断开客户端过很久才检测到的情况?
    tyzandhr
        6
    tyzandhr  
       2022-12-15 01:02:30 +08:00 via Android
    冒昧问下,为什么不本地分包后用 udp 发,服务端做个校验呢?节省掉握手时间。_(:з」∠)_
    edis0n0
        7
    edis0n0  
    OP
       2022-12-15 01:18:49 +08:00
    @tyzandhr #6 因为需要自己处理丢包之类的问题,怕弄不清楚
    tyzandhr
        8
    tyzandhr  
       2022-12-15 01:22:06 +08:00 via Android
    @edis0n0 既然只是怕麻烦,那就用 ws 好了
    wwbfred
        9
    wwbfred  
       2022-12-15 01:27:54 +08:00
    @edis0n0 链路中断除非到下一次数据包 /心跳包发送的时候才能检测到,在此之前任何协议都无法检测到。
    而正常的挥手任何一个设计合理的协议都是可以感知的,不存在很久后才能检测到的问题。
    userdhf
        10
    userdhf  
       2022-12-15 02:03:41 +08:00
    盲猜是监控...
    xsen
        11
    xsen  
       2022-12-15 08:09:16 +08:00
    小包传输,重连+断点续传

    传输成不管是 http ,还是 websocket ,或者 tcp 或 udp 都差距不会很大
    xsen
        12
    xsen  
       2022-12-15 08:09:51 +08:00
    1-2s 一个心跳检测通讯状况
    CyJaySong
        13
    CyJaySong  
       2022-12-15 08:59:31 +08:00
    MQTT 了解一下?
    cheng6563
        14
    cheng6563  
       2022-12-15 09:20:02 +08:00
    客户端不是浏览器不如用 MQTT
    winglight2016
        15
    winglight2016  
       2022-12-15 09:29:13 +08:00
    @CyJaySong 的确,物联网协议那么多,何必自己发明轮子
    SmiteChow
        16
    SmiteChow  
       2022-12-15 09:39:57 +08:00
    MQTT over WebSockets
    Twan
        17
    Twan  
       2022-12-15 09:41:03 +08:00
    UDP
    newmlp
        18
    newmlp  
       2022-12-15 11:09:32 +08:00
    http3
    superliy
        19
    superliy  
       2022-12-15 11:32:09 +08:00
    ws 有没有可能出现连接断开客户端过很久才检测到的情况?


    有没有断开连接 要自己通过心跳保证的,比如两秒中发一个 byte ,服务端立即回复,两次收不到回复就认为是断开的
    luny
        20
    luny  
       2022-12-15 11:45:20 +08:00
    2G ,被运营商限制,现在基本都没有流量了,可以实测一下,估计几个字节都难
    anviod
        21
    anviod  
       2022-12-15 13:06:48 +08:00
    为啥不用 NBIoT 或者 cat 网络 做物联网产品吗? 稳定的一批
    tmumu
        22
    tmumu  
       2022-12-15 13:14:19 +08:00
    13 楼正解,mqtt 或者 ws
    opengps
        23
    opengps  
       2022-12-16 09:37:52 +08:00
    弱网 WebSocket 好很多,http 光包头信息就占了那么多,甚至更推荐原生 socket 去 udp 发数据
    patrickyoung
        24
    patrickyoung  
       2022-12-16 12:07:40 +08:00 via iPhone
    MQTT
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5836 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:44 PVG 10:44 LAX 19:44 JFK 22:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86