在“豆子工具”的所有功能中,局域网调试工具(TCP/UDP/WebSocket) 并不是受众最广的,但它却是我最引以为傲的一个。

因为它让我真切地体会到了一句话:知识就是力量,知识就是金钱。

缘起:把调试器揣进口袋

做嵌入式开发或者网络协议调试的人都知道,以往测试局域网通信,必须背着电脑,接上串口线或网线,蹲在机柜旁守着。我当时就在想:既然微信小程序已经开放了网络通信的能力,为什么我不能做一个随身携带的调试器呢?

于是,我深度调用了小程序的 wx.createTCPSocketwx.createUDPSocketWebSocket API,在“豆子工具”里构建了一个完整的网络测试模块。它支持:

  • 十六进制(Hex)与 ASCII 码切换
  • 实时数据日志展示
  • 局域网内稳定的数据收发

TCP调试工具

变现:从技术分享到“第一桶金”

工具做成后,我并没有藏着掖着,而是把实现原理和核心逻辑整理成文,发布到了微信开发者社区

没过多久,一位用户通过那篇文章联系到了我。他在工业自动化领域遇到了一个难题:需要一套能够定制化采集设备数据的微信小程序工具,而协议正是基于 Modbus/TCP

由于我的“豆子工具”已经打好了坚实的底层基础,我对原有的 TCP 调试模块进行了针对性的修改,迅速就适配出了满足他实际业务场景的采集方案。

虽然这笔订单带来的“第一桶金”数额并不算惊人,但它对我的意义非凡。它验证了一个逻辑:当你把一个细分领域的工具做到极致,并愿意分享出去时,价值自然会找上门来。

技术实现

这个工具是纯小程序实现,它调用微信小程序的网络API。

doConnServer() {
    const that = this;
    wx.getNetworkType({
      success(res) {
        const networkType = res.networkType
        if (networkType !== 'wifi') {
          wx.showToast({
            title: '请打开WIFI',
          })
          return
        }

        that.connTcp();
      }
    });
  },

  connTcp() {
    const that = this;

    if (!utils.isEmpty(t)) {
      t.offMessage()
      t.offConnect()
      t.offError()
      t.offClose()
      t.close()
      t = null;
      that.setData({
        isConn: false,
        tips: "关闭成功"
      })
      wx.showToast({
        title: '关闭成功',
      })
      return
    } else {
      let ip = that.data.ip;
      let port = that.data.port;
      if (!utils.isValidIP(ip)) {
        wx.showToast({
          title: '无效IP地址',
        })
        return
      }
      if (!utils.isPrivateIP(ip)) {
        wx.showToast({
          title: '请使用私有IP',
        })
        return
      }
      if (utils.containInvalidPort(port)) {
        wx.showToast({
          title: '非法端口',
        })
        return
      }

      t = wx.createTCPSocket()
      t.onError(that.tErr)
      t.onConnect(that.tConn)
      t.onMessage(that.tMsg)
      t.onClose(that.tClose)

      t.connect({
        address: ip,
        port: port,
        timeout: 3,
      })
    }
  },

这是部分核心TCP代码,它是TCP创建连接的核心代码。完整代码请从下面地址中的豆子碎片小程序内下载:https://91demo.top/tools/

思考:底层逻辑的价值

很多开发者纠结于学习各种眼花缭乱的新框架,但其实最耐打的永远是底层逻辑。

通过开发这个调试工具,我深度钻研了 TCP 的三次握手、UDP 的无连接特性以及 Modbus 这种工业标准协议。正因为有了这些底层的积淀,当机会来临时,我才能在短短几天内就把“调试工具”变成“生产力工具”。

总结

现在,这个局域网调试模块依然是“豆子工具”里的核心功能。每当我在现场用手机直接调通一台设备时,我都会想起那个联系我的用户。

知识不仅能改变认知,真的能产生价值。