Eine PHP-Bibliothek zur asynchronen Bereitstellung von WebSockets. Erstellen Sie Ihre Anwendung über einfache Schnittstellen und verwenden Sie sie wieder, ohne Code zu ändern, indem Sie einfach verschiedene Komponenten kombinieren.
Unser Ziel ist es derzeit, Ratchet wiederzubeleben, um es mit den neuesten Versionen auf den neuesten Stand zu bringen und dies als Ausgangspunkt für zukünftige größere Updates zu nutzen. Um dieses Ziel zu erreichen, brauchen wir Ihre Hilfe. Unter Ticket Nr. 1054 erfahren Sie, wie Sie uns helfen können.
Shell-Zugriff ist erforderlich und Root-Zugriff wird empfohlen. Um eine Proxy-/Firewall-Blockade zu vermeiden, wird empfohlen, WebSockets auf Port 80 oder 443 (SSL) anzufordern, was Root-Zugriff erfordert. Zu diesem Zweck können Sie neben Ihrem Sync-Webstack entweder einen Reverse-Proxy oder zwei separate Maschinen verwenden. Weitere Details finden Sie in den Server-Conf-Dokumenten.
Benutzer- und API-Dokumentation ist auf der Website von Ratchet verfügbar: http://socketo.me
Unter https://github.com/cboden/Ratchet-examples finden Sie einige sofort einsatzbereite Demos mit Ratchet.
Brauchen Sie Hilfe? Haben Sie eine Frage? Möchten Sie Feedback geben? Schreiben Sie eine Nachricht auf der Google Groups-Mailingliste.
<?php
use Ratchet MessageComponentInterface ;
use Ratchet ConnectionInterface ;
// Make sure composer dependencies have been installed
require __DIR__ . ' /vendor/autoload.php ' ;
/ * *
* chat . php
* Send any incoming messages to all connected clients ( except sender )
* /
class MyChat implements MessageComponentInterface {
protected $ clients ;
public function __construct () {
$ this -> clients = new SplObjectStorage ;
}
public function onOpen ( ConnectionInterface $ conn ) {
$ this -> clients -> attach ( $ conn );
}
public function onMessage ( ConnectionInterface $ from , $ msg ) {
foreach ( $ this -> clients as $ client ) {
if ( $ from != $ client ) {
$ client -> send ( $ msg );
}
}
}
public function onClose ( ConnectionInterface $ conn ) {
$ this -> clients -> detach ( $ conn );
}
public function onError ( ConnectionInterface $ conn , Exception $ e ) {
$ conn -> close ();
}
}
// Run the server application through the WebSocket protocol on port 8080
$ app = new Ratchet App ( ' localhost ' , 8080 );
$ app -> route ( ' /chat ' , new MyChat , array ( ' * ' ));
$ app -> route ( ' /echo ' , new Ratchet Server EchoServer , array ( ' * ' ));
$ app -> run (); $ php chat.php
// Then some JavaScript in the browser:
var conn = new WebSocket ( 'ws://localhost:8080/echo' ) ;
conn . onmessage = function ( e ) { console . log ( e . data ) ; } ;
conn . onopen = function ( e ) { conn . send ( 'Hello Me!' ) ; } ;