2016-05-12 10 views
1

Ist es möglich, Daten an den Browser zu senden oder zu senden und sie mit JavaScript zu erfassen, um sie entsprechend zu behandeln, indem Sie ReactPHP ohne Ratchet verwenden?Kann mit ReactPHP gesendet werden?

Ich habe einen PeriodicTimer auf Event-Loop und manchmal muss es an Benutzer senden oder emittieren, die durch einen Socket verbunden sind. Ich sah, dass es einen Klassensockel gab und in den Beispielen auf der React GitHub Projektseite wurde es instanziiert, aber nicht im Web-Flow verwendet, nur auf Netcat. Ist es möglich, dass es nativ in Browsern wie socket.IO oder Ratchet funktioniert?

Die Fabrik und Verbindung funktioniert gut, ich weiß nur nicht, wie Socket zum Senden/Empfangen von Daten an den Server mit Event-Loop zu binden.

Antwort

1

Broadcasting das ist nicht super-spezielle Funktion.

Zuerst müssen Sie alle Benutzerverbindung im globalen Bereich speichern. Zum Beispiel haben Sie eine Klasse TestServer, es kann Attribut Verbindungen (Typ Array) enthalten. In der Methode run schreiben Sie Schleife.

Zum Beispiel dieses Ihr Verbindungsereignis

$server->on('connection', function(ConnectionInterface $conn) { 
    $this->connections[] = $conn; 
}); 

Und schreibt Methode

public function broadcast($message) { 
    foreach($this->connections as $conn) { 
      $conn->write($message); 
    } 
} 

Achtung! Sie müssen Code schreiben, um die Trennung zu entfernen, wenn der Benutzer die Verbindung trennt. Wenn Sie möchten, können Sie Logik zu Themen schreiben.