2016-06-29 10 views
-1

Ich möchte eine spezifische Nachricht an einen Benutzer ausgeben, der die Seite neu lädt. Es klappt. Aber ich bemerkte Spam, wenn ein anderer Client eine Init sendet an den Server sendet. Nur der Client sollte diese Nachricht erhalten, wenn er sich selbst verbindet.io.sockets.in ("room"). Emit ("Nachricht", "Hallo");

Ist es möglich, nur die io.sockets.in ("room") nur zu senden, wenn der Benutzer die init emittieren?

client:

socket.emit('join', {session: session}); 

socket.emit('init', {}); 

socket.on('message', function(data) { 
    console.log("test"); 
}); 

Server:

io.on("connection", function (socket) { 
    socket.on('join', function (data) { 
    socket.join(data.session); 
    }); 

    socket.on("init", function() { 
    io.sockets.in(session).emit("message", "hello"); 
    }); 
}); 
+1

Ich habe versucht, Ihre Frage zu bearbeiten, um sie für andere klarer zu machen, aber ich habe Schwierigkeiten zu verstehen, was Sie selbst sagen wollen. – Tagc

Antwort

0

socket.emit ("Nachricht", "Hallo"); ?

0

Ja, tut mir leid, schwer zu erklären, wenn Sie die Funktion dahinter nicht kennen. Es ist auch schwer für mich auf Englisch zu erklären, weil dies nicht meine Muttersprache ist.

Ich habe gerade einen einfachen Weg gefunden, um dieses Problem zu beheben. Ich emittiere jetzt die Sitzung in init emit. Und ich checke ein Server wenn diese Sitzung == Sitzung (bekomme diese Sitzung von einer Anfrage json php echo).

Dann senden Sie diese "Hallo" an den richtigen Client.

Verwandte Themen