【发布时间】:2015-04-22 01:39:26
【问题描述】:
我可以在运行 chrome 应用程序的 Windows 中毫无问题地接收广播数据包。但是,当我使用该应用程序并使用cordova/crosswalk 工具进行编译时,我似乎收不到任何数据包。我在wireshark中看到了所有的数据包。我的数据包从:172.24.0.42 传输并在 172.24.255.255 上广播(255.255.255.255 上的广播在 Android 上不起作用,但在 windows chrome 应用程序上起作用)。
这是我的(manifest.json):
"sockets":{
"udp": {
"bind": "*"
}
},
"permissions":["system.network" , "power"],
这是我的网络代码:
chrome.sockets.udp.create({}, function(socketInfo) {
socketId = socketInfo.socketId;
// Setup event handler and bind socket.
chrome.sockets.udp.onReceive.addListener(onReceive);
chrome.sockets.udp.bind(socketId, "0.0.0.0", 4213, function(result) {
if (result < 0) {
console.log("Error binding socket.");
return;
}
//chrome.sockets.udp.send(socketId, arrayBuffer, '127.0.0.1', 1337, function(sendInfo) {
// console.log("sent " + sendInfo.bytesSent);
// })
//chrome.sockets.udp.setBroadcast(socketId, true, function(){})
});
});
这是我收到数据包的时候:
var onReceive = function(info) {
if (info.socketId !== socketId)
return;
chrome.sockets.udp.setPaused(socketId, true, function(){}); // Set socket paused; Essentially blocking
//console.log();
///processing of my packet
chrome.sockets.udp.setPaused(socketId, false, function(){}); //unpause socket
};
编辑:我一直在尽力了解为什么我无法在 Android 上的 chrome 应用程序中获取任何广播数据包。不幸的是,我撞到了一堵墙。
【问题讨论】:
标签: javascript cordova udp google-chrome-app cordova-chrome-app