2015-12-03 2 views
0

J'essaie d'envoyer des données via une connexion TCP à partir de mon client TCP pour Firefox OS. Initialement, j'ai commencé à remplir loginBytes avec les données qui devraient m'aider à me connecter au service spécifié par ip et port (la taille du tableau est de 28 octets), maintenant j'essaye d'envoyer un tableau vide. En tout cas le résultat est le même: dans le journal de la console de Firefox Web IDE, je peux voir le message suivant: uncaught exception: out of memory. Et parmi les messages que j'ai essayé d'utiliser pour le débogage seulement "Started sending data" est imprimé. Je conclus donc que la panne a lieu pendant l'exécution de la commande send. Mais qu'est-ce qui ne va pas avec ça?"Exception non interceptée: mémoire insuffisante" dans le client TCP pour Firefox OS

(function() { 
    var sendButton = document.querySelector('#send'); 
    var notes = document.querySelector('#notes'); 
    var options = {binaryType: 'arraybuffer'}; 
    var socket = navigator.mozTCPSocket.open(ip, port, options); 

    sendButton.addEventListener('click', function() {       
     var loginBytes = []; 
     var Int8View = new Uint8Array(loginBytes);  
     socket.ondata = function(event) { 
      console.log("Started receiving data"); 
      console.log(event.data); 
      console.log("Received successfully"); 
     } 
     socket.onerror = function(event) { 
      console.log("Everything is bad"); 
     } 
     console.log("Started sending data"); 
     socket.send(Int8View); 
     console.log("Sent successfully");         
    }); 
})(); 

Répondre

0

Je pense

var Int8View = new Uint8Array(loginBytes) 

a besoin d'être changé à:

var Int8View = new Uint8Array(loginBytes).buffer 

Uint8Array par lui-même ne retourne pas un objet ArrayBuffer.

+0

Il a aidé à éviter l'exception, mais encore une fois conduit à aucune réponse du serveur (donc le comportement ressemble à celui décrit dans http://stackoverflow.com/questions/33982752/tcp-client-in-firefox -os-no-response-from-the-server). Avez-vous une idée de ce qui pourrait être faux? – mik

+0

Peu importe, j'ai trouvé ce qui a causé mon problème. J'ai utilisé la version '2.2' de Firefox OS simulator mais [ici] (https://gist.github.com/timgluz/a15303d8b8c207a9e00f) les gens disent que j'ai besoin de la version'> 2.2'. Dans Firefox Nightly Build, il existe la version '2.6'. Juste essayé et ça a marché! – mik