>

동일한 Wi-Fi 네트워크에서 다른 앱과 상호 작용할 수있는 이온 앱을 만들려고합니다. 그래서 나는 그들 사이에 메시지를 보낼 수있는 방법을 확립하기 위해 chrome.sockets.udp를 찾고 있습니다. 아래는 동일한 네트워크의 모든 장치에 메시지를 보내는 첫 번째 시도입니다.이 예는 하나의 호스트에만 있습니다. 나는 둘 다 setBroadcast  그리고 setMulticastLoopbackMode  true로 설정되었지만 리스너 중 하나에서 메시지가 수신되지 않습니다. 왜 안돼?

let chrome = window['chrome'];
chrome.sockets.udp.onReceiveError.addListener((data) => {
    console.log('received error');
    console.log(data);
});
chrome.sockets.udp.onReceive.addListener((data) => {
    console.log('received');
    console.log(data);
});
chrome.sockets.udp.create({}, (socketInfo) => {
    // The socket is created, now we can send some data
    var socketId = socketInfo.socketId;
    console.log(socketId);
chrome.sockets.udp.setBroadcast(socketId, true, (response_code) => {
        console.log('broadcast: ' + response_code);
        chrome.sockets.udp.setMulticastLoopbackMode(socketId, true, (loopback_code) => {
            console.log('loopback code: ' + loopback_code);
            chrome.sockets.udp.bind(socketId, '0.0.0.0', 0, (bind_code) => {
                console.log('bind: ' + bind_code);
                chrome.sockets.udp.send(socketId, str2ab('123'), '255.255.255.0', 10090, (sendInfo) => {
                    console.log("sent " + sendInfo.bytesSent);
                    console.log("sent_code " + sendInfo.resultCode);
                });
            });
        });
    });
});

출력 :

[17:49:30]  console.log: 2
[17:49:30]  console.log: broadcast: 0
[17:49:30]  console.log: loopback code: 0
[17:49:30]  console.log: bind: 0
[17:49:30]  console.log: sent 6
[17:49:30]  console.log: sent_code 0

  • 답변 # 1

    루프를 만들고 ip로 udp 패킷 ip를 보낼 수 있습니다. 아래 예를 볼 수 있습니다.

     chrome.sockets.udp.bind(socketId, '0.0.0.0', 1234, (bind_code) => {
        console.log('bind: ' + bind_code);
        for (var i = 1; i < 254; i++) {
          chrome.sockets.udp.send(socketId, this.str2ab('123'), '192.168.1.' + i, 1234, (sendInfo) => { console.log(sendInfo) });
        }
      });
    
    

    여기 192.168.1.1은 게이트웨이 IP입니다.

  • 이전 php - 발신자에게 회신 phpmailer
  • 다음 webview - 웹 서버가 오프라인 인 경우 Android 앱에 오류 메시지가 표시됨