收藏
回答

局域网通信,在非调试模式下,需要校验websocket域名?

微信版本:8.0.18 基础库:2.21.3

设备开启热点,小程序连上设备通过websocket与设备通信

调试模式下一切正常

非调试模式下报:{"errMsg":"fail:url not in domain list"}

局域网模式下还要校验domain吗?

   wx.connectSocket({
      url: 'ws://192.168.4.1:12345',
      success(res) {
        log.info("建立WebSocket通信成功", res);
      },
      fail(res) {
        log.info("建立通信失败", res);
      }
    })

   wx.onSocketError(function (res) {
      log.info("onSocketError", res);
    });


[10:24:35]  建立WebSocket通信...
[10:24:35]  建立WebSocket通信成功 {"errMsg":"connectSocket:ok"}
[10:24:35]  progress 40 设备通信建立成功,开始与设备通信...
[10:24:35]  onSocketError {"errMsg":"fail:url not in domain list"}


最后一次编辑于  2022-01-18
回答关注问题邀请回答
收藏

4 个回答

  • Cjiang
    Cjiang
    2022-01-18

    参考下

    https://developers.weixin.qq.com/miniprogram/dev/framework/ability/mDNS.html

    2022-01-18
    有用
    回复 1
    • 阿义
      阿义
      2022-01-18
      看到回答,死心了,放弃了,感谢 Spencer[^ -~]
      2022-01-18
      回复
  • 阿义
    阿义
    2022-01-18

    我下午测了一下

    1 手机和电脑连着同一个路由器,手机和电脑是可以正常通信

    2 手机连着电脑的热点,手机和电脑无法通信,报 fail:url not in domain list

    也就是说,websocket通信中,小程序连着设备的热点,不满足文档里一个局域网的要求。

    我看交流区有非常多的人问类似的问题,基本都是无解。能有官方的人帮忙看看吗?



    2022-01-18
    有用
    回复 1
    • Spencer[^ -~]
      Spencer[^ -~]
      2022-01-18
      连接同一个路由,是同WiFi的标准状态。
      如果是设备发起的热点,设备本身是否可以连接外网
      也就是说,有没有可能小程序需要连接外网来确定url是否在域名列表?
      2022-01-18
      回复
  • Spencer[^ -~]
    Spencer[^ -~]
    2022-01-18

    设备上开热点,那你手机上是否开启了流量开关。

    如果手机上开启了流量开关,那么小程序会认为这个不是同一个局域网,然后给你报告这个错误。

    2022-01-18
    有用
    回复 2
    • 阿义
      阿义
      2022-01-18
      我把流量关了也不行。我是做ap配网,设备启了热点,手机连上热点后,手机和设备都不能上网,他们之间通过局域网ip通信,可是一通信就断掉了
      2022-01-18
      回复
    • 阿义
      阿义
      2022-01-18
      SocketServer电脑A、开发工具电脑B、手机C,都在一个局域网。
      A B C 网段不同是,BC不能访问A,报 url not in domain list
      A B C 网段相同,B能访问A,C不能,报 url not in domain list
      感觉小程序还是按照文档说的,对局域网做了判断,但不知道是如何判断的,实在搞不定了
      2022-01-18
      回复
  • 微喵网络
    微喵网络
    2022-01-18

    对,要添加websocket域名,而且必须是wss

    2022-01-18
    有用
    回复 7
    • 阿义
      阿义
      2022-01-18
      2022-01-18
      回复
    • 阿义
      阿义
      2022-01-18
      我对开发文档的理解,局域网应该是支持ws的。
      程序都开发完了,感觉要废掉了
      2022-01-18
      回复
    • 微喵网络
      微喵网络
      2022-01-18回复阿义
      那要开调试
      2022-01-18
      回复
    • Spencer[^ -~]
      Spencer[^ -~]
      2022-01-18回复微喵网络
      他要实现的是局域网通信,肯定是要上到生产环境的,局域网ip不确定,没法添加到socket域名里面。
      目前这里肯定是个死循环,你又不能要求用户开调试。
      我们这种需要连接局域网设备的人很容易理解,其他人都总以为我们那里配置的不对。
      2022-01-18
      1
      回复
    • 阿义
      阿义
      2022-01-18回复Spencer[^ -~]
      看来我们是遇到一样头疼的问题了
      2022-01-18
      回复
    查看更多(2)
登录 后发表内容