1
我想開發基本的擴展。這個擴展應該在UDP上進行通信。這個擴展是關於消息。我想創建一個客戶端。因爲我用Java創建了一個服務器。客戶端可以向服務器發送消息,服務器可以向客戶端發送消息谷歌瀏覽器擴展使用UDP
我看看Chrome Developer頁面。但這些文件不是最新的。我創建了這樣一個基本的客戶端:
// values
var address = null;
var connect = null;
var disconnect = null;
// UDP-Object
var echoClient = null;
// -------------------------------------------------------------------------------------------------------------------
window.addEventListener("load", function() {
// input: address.val
address = document.getElementById("address");
// button: connect.val
connect = document.getElementById("connect");
// button: disconnect.val
disconnect = document.getElementById("disconnect");
// button: connect.func
connect.onclick = function(ev) {
if(address.value != ""){
echoClient = newEchoClient(address.value);
}
};
// button: disconnect.func
disconnect.onclick = function(ev) {
echoClient.disconnect();
}
// send data
setInterval(function(){
echoClient.sender();
}, 1000);
});
// -------------------------------------------------------------------------------------------------------------------
var newEchoClient = function(address) {
var ec = new chromeNetworking.clients.echoClient();
ec.sender = attachSend(ec);
var hostnamePort = address.split(":");
var hostname = hostnamePort[0];
var port = (hostnamePort[1] || 7) | 0;
ec.connect(
hostname, port,
function() {
console.log("Connected");
}
);
return ec;
};
var attachSend = function(client) {
var i = 1;
return function(e) {
var data = i;
i++;
client.echo(data, function() {
console.debug(data.data); // the problem is here
});
};
};
但是這段代碼不起作用。在Chrome中,我發現了這個錯誤:
Error in event handler for sockets.udp.onReceive: RangeError: byte length of Uint32Array should be a multiple of 4
at chrome-extension://boeaihphlidceiemkegklmbmefjgogfk/networking.js:84:25
at chrome-extension://boeaihphlidceiemkegklmbmefjgogfk/networking.js:31:34
哪裏出錯?我對這個問題做了什麼?