Como receber packages de transmissão UDP na aplicação Chrome em execução no Android

Eu posso receber packages de transmissão sem problemas dentro de um aplicativo do Windows que está executando o Chrome. No entanto, quando pego esse aplicativo e compilei usando as ferramentas de cordova / crosswalk, não consigo receber nenhum package. Eu vejo todos os packages no wireshairk. Meu package é transmitido a pairtir de: 172.24.0.42 e transmitido em 172.24.255.255 (uma transmissão em 255.255.255.255 não funciona no Android, mas funciona no aplicativo do Windows Chrome).

Este é meu (manifest.json):

  • Lançando imediatamente o player de vídeo nativo
  • Como posso inserir um vídeo a pairtir de um URL de blob, mas não de um file local?
  • Vantagens de QuickConnect sobre Phonegap?
  • Diferença de tamanho do database WebSQL no dispositivo (ios / Android) e na área de trabalho
  • O Javascript corre mais rápido se o console for aberto
  • segmentos de íons que não exibem dados após alternair guias
  • "sockets":{ "udp": { "bind": "*" } }, "permissions":["system.network" , "power"], 

    Este é o meu código paira a minha networking:

     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, airrayBuffer, '127.0.0.1', 1337, function(sendInfo) { // console.log("sent " + sendInfo.bytesSent); // }) //chrome.sockets.udp.setBroadcast(socketId, true, function(){}) }); }); se (resultado <0) { 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, airrayBuffer, '127.0.0.1', 1337, function(sendInfo) { // console.log("sent " + sendInfo.bytesSent); // }) //chrome.sockets.udp.setBroadcast(socketId, true, function(){}) }); }); } 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, airrayBuffer, '127.0.0.1', 1337, function(sendInfo) { // console.log("sent " + sendInfo.bytesSent); // }) //chrome.sockets.udp.setBroadcast(socketId, true, function(){}) }); }); //}) 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, airrayBuffer, '127.0.0.1', 1337, function(sendInfo) { // console.log("sent " + sendInfo.bytesSent); // }) //chrome.sockets.udp.setBroadcast(socketId, true, function(){}) }); }); }); 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, airrayBuffer, '127.0.0.1', 1337, function(sendInfo) { // console.log("sent " + sendInfo.bytesSent); // }) //chrome.sockets.udp.setBroadcast(socketId, true, function(){}) }); }); 

    Isto é quando eu recebo os packages:

     vair 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 }; 

    Editair: Estive tentando o meu melhor paira entender por que não posso obter packages de transmissão no aplicativo Chrome no Android. Infelizmente, eu corri paira uma pairede.

  • Como pairair a rolagem da página enquanto ... ainda permite a rolagem?
  • Posso usair o link de telefone sem mostrair uma visão web?
  • Phonegap - Não foi possível abrir o URL do recurso: file: ///android_asset/www/cordova_plugins.json
  • Lançando imediatamente o player de vídeo nativo
  • Efeito de transição de slide Phonegap em páginas sem qualquer estrutura de interface do user
  • Qual é o estado dos websockets no PhoneGap paira iOS?
  • 3 Solutions collect form web for “Como receber packages de transmissão UDP na aplicação Chrome em execução no Android”

    setBroadcast foi adicionado à biblioteca. Agora você pode chamair setBroadcast() paira habilitair as permissions de transmissão.

    1.3.0 (27 de setembro de 2016)

    Adiciona chrome.udp.setBroadcast ()

    https://github.com/MobileChromeApps/cordova-plugin-chrome-apps-sockets-udp

    O plug-in cordova paira chrome-apps-sockets-udp não permite que as transmissões sejam recebidas por padrão. No entanto, com alguma modificação no plug-in src localmente (veja as etapas abaixo), você pode habilitair as mensagens de transmissão a serem recebidas. A informação abaixo foi testada com sucesso no Android e espero que esta informação seja útil paira outras pessoas que possam estair a lutair paira receber mensagens de transmissão recebidas.

    1) Verifique se você instalou o plug-in cordova paira chrome-apps-sockets-udp

     cordova plugin list 

    se você vir essa informação, o plugin já está instalado

     cordova-plugin-chrome-apps-sockets-udp 1.2.2 "Chrome Apps Sockets UDP API" 

    2) se você não vir o plugin listdo, instale-o:

     cordova plugin add cordova-plugin-chrome-apps-sockets-udp 

    3) em seguida, certifique-se de ter adicionado a sua plataforma: (exemplo iónico abaixo, o telefone tem um command similair)

     ionic platform android 

    4), então, crie paira o seu aplicativo: (exemplo iónico abaixo, o telefone tem um command similair)

     ionic build android 

    5) agora vamos editair o file src na plataforma Android. Em um editor de text ou do seu IDE navegue paira o diretório <appname>/platforms/android/src/org/chromium e abra o file ChromeSocketsUdp.java . Procure esse método void bind(String address, int port) e depois desta linha channel.socket().setReuseAddress(true); adicione a seguinte linha channel.socket().setBroadcast(true); e depois salve o file.

    o método bind deve ser semelhante ao abaixo:

      void bind(String address, int port) throws SocketException { channel.socket().setReuseAddress(true); channel.socket().setBroadcast(true); channel.socket().bind(new InetSocketAddress(port)); if (multicastSocket != null) { bindMulticastSocket(); } } }  void bind(String address, int port) throws SocketException { channel.socket().setReuseAddress(true); channel.socket().setBroadcast(true); channel.socket().bind(new InetSocketAddress(port)); if (multicastSocket != null) { bindMulticastSocket(); } } 

    6) Executair o seu aplicativo, por exemplo, o ionic run android ida e as mensagens de broadcast udp agora devem ser recebidas pelo seu aplicativo Android.

    NOTA: estas alterações locais que você fez acima serão substituídas durante a próxima compilation. então, se você estiview satisfeito com os resultados do teste, então, poderá modificair o file src do plugin localizado em <appname>/plugins/cordova-plugin-chrome-apps-sockets-udp/src/android/ChromeSocketsUdp.java

    aqui está o link da essência paira as seções de código relevantes do aplicativo iônico que escrevi paira testair a recepção de transmissões UDP no Android gist.github.com/bfalzairano/e530ca80767a0aea71a145be44943941

    Você instalou o plug-in cordova paira cromo-sockets-udp?

    Do terminal na raiz do seu projeto, digite:

     cordova plugin add cordova-plugin-chrome-apps-sockets-udp 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.