@SergOdinokiy

Почему клиенту не приходят события сервера node.js websocket?

Почему от сервера клиенту не приходят сообщения? Запускаю сервер оба клиента подключаются. Клиент видит свои сообщения которые отправляет, а другой не видит. Хотя на сервере событие происходит. Почему другой клиент не получает событие сервера?

88iSy.jpg
Вот сервер:
const https = require('https');
const fs = require('fs');
const ws = require('ws');
const port =441;

var processRequest = function( req, res ) {
    res.writeHead(200);
    res.end("All glory to WebSockets!\n");
};

const app= https.createServer({
    key: fs.readFileSync('../crt/private.key'),
    cert: fs.readFileSync('../crt/domain_name.crt')
}, processRequest  ).listen(port);


const server = new ws.Server({server:app});

server.on('connection', function(ws,req) {
    ws.send(JSON.stringify({'connected':"HI"}));
    console.log({'connected':"HI"});

    ws.on('message', function(message) {
            console.log('получено сообщение ' + message);
            ws.send(JSON.stringify({'connected':message}));
    });
    ws.on('close', function() {
        ws.send(JSON.stringify({'disconnect':"off"}));
        console.log(JSON.stringify({'disconnect':"off"}));


    });

});

Вот клиент:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
</head>
<body>
<input type="button" value="ok" onclick="add()">
<script>

var socket = new WebSocket('wss://site.ru:441');


    //socket.onopen = () => setInterval(() => socket.send('ping'), 1000);    
    //socket.onclose = (event) => socket.onclose = (event) =>  console.log((event.wasClean) ? 'Disconnected' :  'Connection break: ' + (event.reason || event.code));  //



    socket.onmessage=function(event){
    console.log( JSON.parse(event.data) );
    }


    function add(){
    socket.send("Привет")
    }

</script>

</body>
</html>

Вроде все просто и должно работать. В чем может быть проблема, почему другой клиент не получает события сервера?
  • Вопрос задан
  • 372 просмотра
Решения вопроса 1
notiv-nt
@notiv-nt
Как ваше ничего? Да, моё тоже
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы