Примечание: Ближайший вопрос, который я нашел в шахте this one, но ответ для передачи данных с помощью функции прокси-сервера, который ожидает для readyState быть 1. Это не дубликат этого вопроса, хотя названия очень похожи; Я знаю, что моя проблема заключается в том, что мой сервер не передает данные клиенту, но я не знаю, что передать.JS WebSocket застрял в состоянии Подключение к TcpListener - VB.net
Деталь:
У меня есть TCP Слушатель определена в моей программе сервера как New TcpListener(ipAd, 8001)
и я написал клиентскую программу как New TcpClient()
для подключения к серверу. Эти программы работают по назначению, где, как только будет установлено соединение, клиент готов отправить данные на сервер.
После того, как я завершил работу с клиентом и сервером, я начал работать с веб-интерфейсом, чтобы выступать в роли клиента, поэтому я мог отправлять данные в сокет с любого устройства. Вот Javascript код WebSocket:
console.log("Attempting to connect...");
ws = new WebSocket('ws://192.168.0.10:8001/');
ws.onopen = function(msg) {
console.log('Connection successfully opened');
};
ws.onmessage = function(msg) {
console.log(msg);
};
ws.onclose = function(msg) {
console.log("Closed.");
}
ws.error = function(err){
console.log(err);
}
Когда я загрузить веб-страницу, я вижу в моем сервере консоли приложение, которое производится подключение. Вот вывод:
GET/HTTP/1.1
Host: 192.168.0.10:8001
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-
cache
Upgrade: websocket
Origin: null
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows
NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
Accept-Enc
oding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Sec-WebSocket-Key: key_here
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Так ясно, что HTTP-заголовки отправлены и получены; Однако, мой сервер (на данный момент) не отправляет ничего обратно клиенту, поэтому, когда я пытаюсь выпустить ws.send("test");
из WebSocket, я получаю сообщение об ошибке в консоли:
Uncaught InvalidStateError: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
Мой вопрос: Что мне нужно отправить обратно клиенту с моего сервера для завершения рукопожатия, чтобы я мог отправлять данные с ws.send();
?
Ваша ссылка на образец кода Mozilla работала, но для этого потребовалась быстрая смена. 'Dim FRRROPCODE Поскольку Byte()' нужно было изменить только на 'Byte', а не на массив. Также «Полученный» неправильно указан в этом коде. – Chad
Пробовал войти в систему, чтобы изменить его, но Mozilla не примет мои учетные данные: \ – Chad