@ru_janex

Как решить проблему с socket.io+express+node.js?

Проблема в том, что данные обновляются на другом клиенте только после обновления страницы.
Это уже 2-й вариант, который делаю, и вот с обновлением проблемы.
Тестила на ие-опере-хроме-телефоне...

Серверная часть
var server = http.createServer(app);
server.listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

var io = require('socket.io').listen( server );
var list = "";
io.sockets.on('connection', function (socket) {
    socket.emit('news', { hello: list });
    socket.on('my other event', function (data) {
        console.log(list);
        list += data.hello + "</br>";

    });
});

Прим list - хранит лог сообщений, в бд пока не отправляю.

Скрипт, вызываемый на клиенте.

function foo () {
    socket.emit('my other event', { hello: document.getElementById("nameR").value });
}

var socket = io.connect('http://localhost');
socket.on('news', function (data) {
    document.getElementById("as").innerHTML = data.hello;
    socket.emit('my other event', { hello: document.getElementById("nameR").value });
});

Прим foo() - посажена на клик по кнопке.
  • Вопрос задан
  • 3121 просмотр
Решения вопроса 1
ZOTTCE
@ZOTTCE
После получение данных от клиента, ты не отсылаешь обновленные данные другим клиентам.

"socket.broadcast.send — отправка сообщения всем клиентам, кроме текущего"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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