收藏
回答

TCPSocket可否提供一个nodelay的参数来控制是否启用 Nagle 算法?

https://developers.weixin.qq.com/miniprogram/dev/api/network/tcp/wx.createTCPSocket.html

https://developers.weixin.qq.com/miniprogram/dev/api/network/tcp/TCPSocket.connect.html

您好,上面的两个接口可否提供一个nodelay的参数来控制是否启用 Nagle 算法。

因为我们是小数据包用来发送控制指令,每次大概几十个字节,需要快速的到达服务端。

现在的情况是我们按每次几十个字节发送的时候,经常会出现网络超时后才收到控制指令到达(超时设置时间为100ms);然后我们现在每次创建一个1400大小的空数组,然后每次发送的时候把需要发送的几十个字节填充到空数组前段,然后以1400大小进行发送,这样可以保证我们每次都能按时收到控制指令。

我们分析原来小包发送超时的原因应该是:tcp没有nodely来关闭nagle算法,导致tcp底层发送数据的时候,发现它不够一个tcp分片,就一直在等待其它包一块发送,直到默认超时才发送。现在我们每次发送1400,可以保证它一个分片足够,不用等拼包,所以发送的比原来及时。

但是这样会有一个问题,就是浪费了大量的网络数据流量,造成了很多没有必要的数据发送。

所以希望贵公司可以提供一个nodelay的参数,来控制 是否启用Nagle算法。这样用小程序来发送tcp控制指令的时候,可以及时通知对方。

感谢!

回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2025-12-15

    后续版本会支持该特性,请关注小程序的功能更新,谢谢!

    2025-12-15
    有用
    回复
  • Tyger
    Tyger
    2025-12-11

    我们不是在企业微信里面使用,是在微信小程序里面使用的

    2025-12-11
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    2025-12-11
    有用
登录 后发表内容