Страница не обновляется автоматически при получении socket.io - PullRequest
0 голосов
/ 04 февраля 2019

Я хочу обновить страницу при появлении новых данных socket.io.У меня есть сервер -> связь с клиентом: Код сервера (n var - это сообщение)

io2.on('connection', function(socket2) {  
    socket2.on('live', function(data2) {
    console.log('status from live client:', data2);
    socket2.emit('live', n);
});
});

Код живой страницы:

    var socket = io.connect('http://localhost:3002');
    socket.emit('live', 'live client is connected');
    socket.on('live', function(data) {
        //alert(data)
        document.getElementById("demo").innerHTML = data;

    });

Сокет работает нормально, потому что когда я отправляюданные и я обновляю страницу, это показывает, что я хочу.Проблема в том, что я хочу видеть обновленное сообщение без обновления вручную.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Вам нужно отправить событие со стороны сервера на сторону клиента, а затем перехватить данные там

var server = app.listen(3000);  
var io = require('socket.io')(server);


io.on('connection', function(socket) {  
  socket.on('event', function(data) {
    var n = data.message;
    io.sockets.emit('event', message);

});

А затем на веб-интерфейсе на живой странице вы пишете это

var n = <%-JSON.stringify(v1)%>;
var socket = io.connect('http://localhost:3000');
socket.on('event', (data)=>{
     console.log(data)
});
0 голосов
/ 04 февраля 2019

Область действия n не определена в первой функции, поэтому принимающей функции нечего показывать.

Вам необходимо определить n в исходной функции излучения.

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