Я разрабатываю приложение для Firefox OS, которое должно связываться с сервером через TCP-соединение. Вы можете увидеть приведенный ниже код (единственная разница в том, что я заменил фактический IP-адрес и порт именами переменных и исключил содержимое loginButes
(на самом деле там ровно 24 байта)). Проблема в том, что в консоли я вижу только "Sent successfully"
. Поэтому я не получаю никакого ответа от сервера вообще. Насколько я понимаю, могут быть две возможные причины этой проблемы: либо данные, которые я использую для подключения, либо неверны, либо, как я пытаюсь получить ответ с сервера, это неправильно. Предположим, что все в порядке с данными. Должен ли мой код получать ответ или нет? (Т.е. должен socket.ondata
быть выполнена, если сервер посылает мне в ответ-л)TCP-клиент в ОС Firefox. Нет ответа с сервера
(function() {
var options = {binaryType='arraybuffer'};
var socket = navigator.mozTCPSocket.open(ip, port, options);
sendButton.addEventListener('click', function() {
var loginButes = [];
var Int8View = new Uint8Array(loginBytes);
socket.ondata = function(event) {
console.log(event.data);
console.log("Received successfully");
}
socket.onerror = function(event) {
console.log("Everything is bad");
}
socket.send(Int8View);
console.log("Sent successfully");
});
})();
P.S. Благодаря ответу @ DavidHoldeman, я избавился от первоначальной проблемы и пришел к другому. При отправке данных я получаю "uncaught exception: out of memory"
. Не могли бы вы предложить, что может быть причиной этой ошибки?
Не уверен, но вы создаете массив с именем 'loginButes' и инициализируете Uint8Array переменной с именем' loginBytes', которая нигде не определена. Также проверьте размер Int8View. Если это действительно 24 байта, длина должна быть 24. –
@ LoïcFaure-Lacroix Не могли бы вы быть более конкретными в отношении 'loginBytes'? Почему вы говорите, что он нигде не определен, если он уже объявлен и инициализирован? Btw, я напечатал размер 'Int8View'. Это 24, как и ожидалось. – mik
Я уже говорил вам, что у вас есть опечатка .. в строке 6. Вы писали 'Butes' не' Bytes' ... –