收藏
回答

为何真机环境TCPSocket.write无法使用ArrayBuffer作为参数?

TCPSocket.write在模拟器中可以正常工作,在真机调试和预览中会报错。

以下代码在真机运行的时候会报错,原因是socket.write的时候会触发一个内部错误:

    var buff = new ArrayBuffer(10)
    const uint8View = new Uint8Array(buff);
    uint8View.set([83,83,4,0,0,0,0,49,117,49]);
    socket.write(buff)      //触发错误
    console.log("send fnish")

错误详情:

MiniProgramError
The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of ArrayBuffer
TypeError: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of ArrayBuffer
undefined


socket已经创建并连接到了远端,如果调用改为传入字符串则可以正常发送,比如socket.write("123"),请问是什么原因?

PS: 当前基础库版本是3.5.0

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

2 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    07-29

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    07-29
    有用
    回复 2
    • 钟俊奇
      钟俊奇
      07-29
      https://developers.weixin.qq.com/s/Z484x3mi7cT1
      除了模拟器,其他的预览、真机调试、开发版、预览版都不行
      PC: WIN11, 开发者工具1.03.0
      手机:小米14Ultra 微信版本8.0.50
      07-29
      回复
    • 钟俊奇
      钟俊奇
      08-06
      这个问题有什么结论吗?还是说这种写法不被支持了?
      08-06
      回复
  • 钟俊奇
    钟俊奇
    08-12

    问题解决了,是基础库版本切换后推送的问题,可能是某次切换没有推送导致基础库乱掉了

    08-12
    有用
    回复
登录 后发表内容