Я пытаюсь подключить клиент, запущенный в веб-браузере, к серверу с помощью веб-сокетов.
Мой клиент написан на javascript, а мой сервер - node.js.Мне удалось подключить клиент node.js к моему серверу, но не удается подключить мой клиент javascript к серверу.
код сервера:
var webSocketServer = require("websocket").server;
var http = require("http");
var port = 9000;
var server = http.createServer(function (request, response) {
console.log(new Date() + " Received request");
});
server.listen(port, function () {
console.log(new Date() + " listening on port 9000");
});
var socket = new webSocketServer({
httpServer: server
});
socket.on("request", function (request) {
var connection = request.accept(null, request.origin);
connection.on("message", function (message) {
console.log(message.utf8Data);
});
});
код клиента:
var client = new WebSocket("ws://localhost:9000");
client.onopen = function () {
client.send("Handshake from client");
}
Я ожидал увидеть рукопожатие от вывода клиента в моей командной строке, из которой я запустил свой сервер.Такого не бывает.В консоли браузера я в итоге получаю эту ошибку:
WebSocket connection to 'ws://localhost:9000/' failed: WebSocket opening handshake timed out
Я пытался console.log
мой клиентский объект, и вывод был такой:
WebSocket {url: "ws://localhost:9000/", readyState: 0, bufferedAmount: 0, onopen: null, onerror: null, …}
Насколько я знаю,объект создается правильно и указывает на правильный URL-адрес, но по-прежнему не может установить соединение.