"permissions": [ "storage" , "identity", "https://www.googleapis.com/", "clipboardRead", "system.network" ],
"sockets": {
"udp": {
"bind" : "*",
"send" : "*"
}var socketId;
// Handle the "onReceive" event.
var onReceive = function(info) {
var data = chrome.socket.read(info.socketId);
if (info.socketId !== socketId)
return;
console.log("info.data received "+info.data);
console.log("info.data received "+data);
};
//on receive error
function onReceiveError(info) {
console.log("error with: ");
console.log(info);
}
// Create the Socket
chrome.sockets.udp.create({}, function(socketInfo) {
socketId = socketInfo.socketId;
chrome.sockets.udp.bind(socketId,
"0.0.0.0", 0, function(result) {
if (result < 0) {
console.log("Error binding socket.");
return;
}
chrome.sockets.udp.send(socketId, stringToArrayBuffer("HELLO"),
'239.0.0.250', 32414, function(sendInfo) {
//At this point get 10 bytes sent
console.log("sent " + sendInfo.bytesSent);
if (sendInfo.resultCode < 0) {
console.log("Error listening: " + chrome.runtime.lastError.message);
}
// Setup event handler and bind socket.
chrome.sockets.udp.onReceive.addListener(onReceive);
chrome.sockets.udp.onReceiveError.addListener(onReceiveError);
});
});
});
function stringToArrayBuffer(string) {
var buffer = new ArrayBuffer(string.length * 2);
var bufferView = new Uint16Array(buffer);
for (var i = 0, stringLength = string.length; i < stringLength; i++) {
bufferView = string.charCodeAt(i);
}
return buffer;
} "permissions": [ "storage" , "identity", "https://www.googleapis.com/", "clipboardRead", "system.network" ],
"sockets": {
"udp": {
"bind" : "*",
"send" : "*",
"multicastMembership": ""
}function stringToArrayBuffer(string) {
var buffer = new ArrayBuffer(string.length * 2);
var bufferView = new Uint16Array(buffer);
for (var i = 0, stringLength = string.length; i < stringLength; i++) {
bufferView = string.charCodeAt(i);
}
return buffer;
}
chrome.sockets.udp.create({bufferSize: 1024 * 1024}, function (createInfo) {
// Handle the "onReceive" event.
var onReceive = function onReceive(info) {
var data = chrome.socket.read(info.socketId);
if (info.socketId !== socketId)
return;
console.log("info.data received "+info.data);
console.log("info.data received "+data);
};
chrome.sockets.udp.onReceive.addListener(onReceive);
chrome.sockets.udp.onReceiveError.addListener(onReceiveError);
var socketId = createInfo.socketId;
//on receive error
function onReceiveError(info) {
console.log("onReceiveError");
console.log("info " + info);
}
//console.log("me.config.port "+me.config.port);
chrome.sockets.udp.bind(socketId, "0.0.0.0", 0, function (result) {
if (result !== 0) {
chrome.sockets.udp.close(socketId, function () {
console.log("Error on bind(): ", result);
});
} else {
chrome.sockets.udp.joinGroup(socketId, "239.0.0.250", function (result) {
if (result !== 0) {
chrome.sockets.udp.close(socketId, function () {
console.log("Error on joinGroup(): ", result);
});
} else {
console.log("socketID " + socketId);
chrome.sockets.udp.send(socketId, stringToArrayBuffer("M-SEARCH * HTTP/1.0"),
'239.0.0.250', 32414, function(sendInfo) {
console.log("sent " + sendInfo.bytesSent);
console.log("resultcode " + sendInfo.resultCode);
if (sendInfo.resultCode < 0) {
console.log("Error listening: " + chrome.runtime.lastError.message);
}
else if(sendInfo.resultCode === 0){
//No Plex Media Servers found
console.log("resultcode is 0");
}});
}
});
}
});
});