2016-04-05 13 views
0

Ich lese bis auf WebSockets und nach einer Menge Tutorials und Blogs zu lesen (meist über eine einfache Chat-Anwendung erstellen) senden gibt es noch 1 Frage unbeantwortet:Wie Nachricht auf websocket Server an bestimmten Benutzer (n)

Art der Technologie beiseite (node.js oder php von Python) Ich finde keine Möglichkeit, eine Nachricht an 1 Benutzer oder eine Gruppe von Benutzern zu senden, ohne zuerst ein Ereignis des Clients auf dem Websocket-Server (häufig genannt onconnect() oder onMessage()).

Ist es nicht möglich, eine externe Anwendung oder ein Ereignis aufzurufen, ein Skript (bash oder php), das die bestehende WebSocket-Instanz verwendet, um Informationen (Text) an einen oder mehrere verbundene Browser zu senden/senden (Websocket Clients) ??

Es tut mir leid, wenn das eine dumme Frage ist, aber ich kann keine Antwort finden, indem ich diese Blogs im Web lese.

Vielen Dank für diese Klarstellung.

+0

Wenn jemand dich nicht verbindet, kann ihm offensichtlich keine Nachricht geschickt werden? –

+0

Sie meinen, Sie wollen nur in bereits laufenden Server hacken und nur Informationen senden, oder mir fehlt etwas? :) Wenn du meinst, wenn du die sendende Funktion ** außerhalb ** des 'on connect'-Handlers verschieben willst - kannst du natürlich! –

+0

Ich kenne dort am allerersten ein connect() von einem Websocket-Client. Soweit ich verstehe. Und auf dieser connect() könnte ich eine Antwort vom websocket Server wie 'Welcome user!' Aber dann ... das ist meine untere Frage: Was, wenn ich - websocket server - möchte eine zweite Nachricht an diesen Benutzer 'senden, wissen Sie, dass Sie immer noch verbunden sind?'. Wie sende ich diese zweite Nachricht, ohne dass der Websocket-Benutzer zuerst etwas an den Websocket-Server sendet? Nicht interessant darin, hier etwas zu hacken, das ist eine ernste Frage. – user2795648

Antwort

0

Von dem, was ich verstehe, haben, können Sie leicht Steckdosen wie verwenden:

// main.js 
this.sockets = {}; 
myOtherModule.init(sockets); 
io.on('connection', function(socket)) { 
    sockets[socket.id] = socket; 

    socket.on('command', myOtherModule.onSocketCommand); 
} 


// myOtherModule.js 
this.init = function(sockets) { 
    this.sockets = sockets; 
} 
this.onSocketCommand = function() { 
    this.sockets['other.socket.id'].emit('message'); 
} 

können Sie immer die Steckdose sparen, egal irgendwo, wenn sie innerhalb von Objekt oder einzelne Variable ist. Dann können Sie es immer verwenden, um Nachrichten auszugeben.

Verwandte Themen