Клиент Javascript не будет подключаться к серверу node.js через websocket - PullRequest
0 голосов
/ 26 декабря 2018

Я пытаюсь подключить клиент, запущенный в веб-браузере, к серверу с помощью веб-сокетов.

Мой клиент написан на 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-адрес, но по-прежнему не может установить соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...