Почему мое приложение Socket.io Express просто отправляет клиенту «отправителя»? - PullRequest
2 голосов
/ 17 февраля 2012

Я пытаюсь написать простое приложение для чата с Node.js (Express) и Socket.io. Кажется, что все «работает», но мой сервер сокетов, похоже, только «отправляет» сообщение обратно исходному отправителю. Вот мой код сокета:

var client = io.listen(app);

client.sockets.on('connection', function (socket) {
  socket.on('message', function (data) {
    console.log(data);
    socket.send(data);
  });
});

А вот мой код на стороне клиента:

$(document).ready(function() {
    var socket = new io.connect('http://localhost:3000');

    socket.on('connect', function() {
        socket.send('A client connected.');
    });

    socket.on('message', function(message) {
        $('#messages').html('<p>' + message + '</p>' +  $('#messages').html());
        console.log(socket);

    });

    $('input').keydown(function(event) {
        if(event.keyCode === 13) {   
            socket.send($('input').val());
            $('input').val('');
        }
    });
});

Помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Используйте client.sockets.emit вместо socket.emit.Он будет отправлять каждому подключенному клиенту (широковещательный), используя объект сокета только отправляет конкретному клиенту.

0 голосов
/ 21 марта 2012

На стороне сервера, я думаю, что вы хотите:

socket.broadcast.emit(data);

вместо:

socket.send(data);

См. «Вещательные сообщения» в нижней части «Как использовать»страница .:)

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