2017-04-07 10 views
1

基本的な拡張機能を開発したいと考えています。この拡張はUDPで通信する必要があります。この拡張機能はメッセージングに関するものです。私はクライアントを作成したい。私はJavaでサーバーを作成するので。クライアントはサーバーにメッセージを送信でき、サーバーはクライアントにメッセージを送信できます。UDPを使用したGoogle Chrome拡張機能

私は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 

どこが間違っていますか?この問題について私は何をしますか?

答えて

1

AFAIK、Chrome拡張機能はUPDを通信に使用できません。このpostに記載されているように、通信するアプリと拡張機能の両方を使用するか、内線番号とNative Hostを使用することができます。

ChromeアプリケーションのみがソケットAPIにアクセスでき、postにも記載されているChrome拡張機能ではないと思います。

また、これをチェックすることができます:Chromeの拡張機能について

参照会談がchrome.socketを使用することはできません。

これが役に立ちます。

関連する問題