WeChat アプレットは UDP を使用して LAN 通信を実装します

使用シナリオ: 新しい Ubuntu サーバーに一部のサービスやその他の作業をデプロイする場合、メイン コンピューターから Ubuntu にテキストを頻繁にコピーする必要がありますが、WeChat や VPN がないため、文字を 1 つずつ手動で入力することしかできません。 。そこで、スキルを練習するために LAN 通信用の小さなプログラムを作成したいと思いました。後で、LAN 通信の Web バージョンを実装する方法について説明します。

1. UDP リアルカラムの作成

const udp = wx.createUDPSocket()

2. 独自のサービス ポートをバインドします (数値タイプである必要があります。各 UDP インスタンスにはポート バインドが必要です。そうでない場合は通信できません)。

udp.bind(1234)

3. パケット メッセージの監視を開始するイベントを監視します (準備ができていることを示します。これは、監視を開始することを意味しますが、メッセージの監視を意味するわけではありません。監視を開始する必要があります。そうしないと、後でメッセージを監視できなくなります)。

udp.onListening((e) => {
    
    
  console.log(e);
  console.log("开始监听消息");
})

4. メッセージの監視を開始します(これは監視メッセージのレポートです)。

udp.onMessage((e) => {
    
    
  console.log(e);
})

5. メッセージを送信します (255.255.255.255 はブロードキャスト メッセージであり、指定した IP アドレスに変更できます。ポートには別の UDP サービスのポートが入力されます。メッセージの形式は文字列または数値タイプである必要があります。それ以外の場合は、送信されず、エラーも報告されません!)

//这就是编码了
const data = JSON.stringify({
    
    
  ip: "1111",
  msg: "哈哈"
})

udp.send({
    
    
  address: '255.255.255.255',
  message: data,
  port: 4321
})

6. 報告された arrayBuffer 形式のメッセージを解析します

以下はデコードですが、デコードにはutf8ArrayToStr.jsファイルが必要なので、記事の最後に貼り付けておきます。

const Utf8ArrayToStr = require('../../utils/utf8ArrayToStr');

const msg = Utf8ArrayToStr(new Uint8Array(res.message))
console.log(msg);
// 结果:{ip: "1111",msg: "哈哈"}

7. ここで終わります。読んでくれてありがとう

8. 続報として、Android と Apple の 2 台の携帯電話を使用して QR コードをスキャンし、実機でデバッグすると、メッセージが受信できる場合と受信できない場合があります。言葉が出なくなり窒息する

9. フォローアップすると、onListening イベントが書き込まれていないことがわかり、言葉を失いましたが、幸いなことに、最終的にそれを理解できました。

おすすめ

転載: blog.csdn.net/lcc2001/article/details/134833004