首页 > 解决方案 > Ionic 4 - chrome sockets udp 不创建套接字而不输出任何错误

问题描述

我正在尝试使用 chrome.sockets.udp 发送和接收 udp 数据包。我正在使用以下代码:

async broadcasting(messageSend)
{
    var str2ab=function(str) {
        var buf=new ArrayBuffer(str.length);
        var bufView=new Uint8Array(buf);
        for (var i=0; i<str.length; i++) {
        bufView[i]=str.charCodeAt(i);
        }
        return buf;
    }

    // From https://developer.chrome.com/trunk/apps/app_hardware.html
    var ab2str=function(buf) {
        return String.fromCharCode.apply(null, new Uint8Array(buf));
    };

    var socketId;
    var onReceive = function(info) {
        console.log(info.data);
        if (info.socketId !== socketId)
        return;

    };
    console.log("Creaste");
    var socketOption = {
        persistent: true,
        name: 'udpSocket',
        bufferSize: 4096
    };
    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(socketOption, function(socketInfo) {
        socketId = socketInfo.socketId;
        // Setup event handler and bind socket.
       console.log("socketId",socketId);
       alert();

       chrome.sockets.udp.onReceive.addListener(onReceive);
        chrome.sockets.udp.bind(socketId,
            "0.0.0.0", 0, function(result) {
                console.log(" binding socket.");
            if (result < 0) {
                console.log("Erro binding socket.");
                return;
            }//52.20.16.20 40000j
            chrome.sockets.udp.send(socketId, str2ab(ab2str(messageSend)),
            '192.168.1.69', 63580, function(sendInfo) {
                console.log("sent " + sendInfo.bytesSent);
            });
        });


    });
}

但是 create 的回调永远不会被调用,并且在控制台中我没有收到任何错误或任何关于为什么未创建套接字的指示!我在一个真正的安卓设备上运行它。任何想法 ?

标签: cordovaionic-frameworkudpionic4

解决方案


问题是由于与另一个包发生冲突,我没有找到哪个包,但是通过启动一个新项目并仅安装我需要的包,它开始按预期工作。


推荐阅读