Frage

Ich versuche, eine grundlegende Chat-Anwendung mit Node.js (Express) und Socket.io zu schreiben.Alles scheint zu funktionieren, aber mein Socket-Server scheint nur die Nachricht an den ursprünglichen Absender zurückzusenden.Hier ist mein Socket-Code:

var client = io.listen(app);

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

Und hier ist mein clientseitiger Code:

$(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('');
        }
    });
});

Hilfe wird geschätzt.

War es hilfreich?

Lösung

Verwenden Sie client.sockets.emit anstelle von socket.emit.Es wird an jeden verbundenen Client (Broadcast) gesendet, wobei das Socket-Objekt nur an den bestimmten Client gesendet wird.

Andere Tipps

Serverseitig, ich denke, Sie möchten:

socket.broadcast.emit(data);

statt:

socket.send(data);

Siehe "Broadcasting Messages" am Ende der Seite "Verwendung" .:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top