Я пытался написать фрагмент кода для открытия веб-сокета.Не удается открыть веб-сокет
var ws = null;
var close = function() {
if (ws) {
console.log('closing ...');
ws.close();
}
}
var onOpen = function() {
console.log('opening...');
ws.send('hello. im connected');
};
var onClose = function() {
console.log('closed');
};
var onMessage = function(event) {
var data = event.data;
console.log('message: ' + data);
};
close();
var url = 'ws://localhost:9999';
ws = new WebSocket(url);
ws.onopen = onOpen;
ws.onclose = onClose;
ws.onmessage = onMessage;
console.log('ws: ' + ws);
if (ws)
{
console.log('url:' + ws.url);
console.log('readyState:' + ws.readyState);
ws.send(msg);
}
else
alert('no ws');
Но, увидев консоль, то readyState было продолжать быть «СОЕДИНЕНИЕ», который вызывает команду метания исключения сокета().
Я попробовал расширение https://chrome.google.com/extensions/detail/pfdhoblngboilpfeibdedpjgfnlcodoo и получил ту же проблему. Сервер довольно прост, который принимает входящий сокет и выписывает его на консоль.
Там начальный дрожание рук, но readyState клиента до сих пор хранится равным 0.
Вот рука встряхивания:
GET/HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:9999
Origin: http://localhost:8080
Sec-WebSocket-Key1: Qb 15 05 6 Gq 9 26 u0 6
Sec-WebSocket-Key2: 8096 C0587|7.
У меня есть что-то конкретное на сервере, чтобы позволить быть открыт клиент?
Спасибо, ребята.
Вы разбираете рукопожатие на стороне сервера и отправляете хэш из двух ключей? –
Вы чувствуете, что ваш вопрос был достаточно отвечен? (если так вы можете выбрать ответ). Если нет, мы можем помочь вам решить ваш вопрос? – kanaka