Ionic 4 - chrome 套接字 udp 不创建套接字而不输出任何错误
Ionic 4 - chrome sockets udp not creating socket without outputting any error
我正在尝试使用 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);
});
});
});
}
但是创建的回调从未被调用,在控制台中我没有收到任何错误或任何关于为什么没有创建套接字的指示!我 运行 在真正的 android 设备上使用它。
有什么想法吗?
问题是由于与另一个包发生冲突,我没有找到哪个包,但是通过启动一个新项目并仅安装我需要的包,它开始按预期工作。
我正在尝试使用 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);
});
});
});
}
但是创建的回调从未被调用,在控制台中我没有收到任何错误或任何关于为什么没有创建套接字的指示!我 运行 在真正的 android 设备上使用它。 有什么想法吗?
问题是由于与另一个包发生冲突,我没有找到哪个包,但是通过启动一个新项目并仅安装我需要的包,它开始按预期工作。