Une bibliothèque PHP pour servir de manière asynchrone les WebSockets. Créez votre application via des interfaces simples et réutilisez votre application sans modifier aucun de son code simplement en combinant différents composants.
Nous visons actuellement à relancer Ratchet pour le mettre à jour avec les dernières versions et l'utiliser comme point de départ pour des mises à jour plus importantes à venir. Nous avons besoin de votre aide pour atteindre cet objectif, consultez le ticket n° 1054 pour savoir comment nous aider.
L'accès au shell est requis et l'accès root est recommandé. Pour éviter le blocage du proxy/pare-feu, il est recommandé que les WebSockets soient demandés sur le port 80 ou 443 (SSL), ce qui nécessite un accès root. Pour ce faire, avec votre pile Web de synchronisation, vous pouvez utiliser un proxy inverse ou deux machines distinctes. Vous pouvez trouver plus de détails dans la documentation de la configuration du serveur.
La documentation utilisateur et API est disponible sur le site Web de Ratchet : http://socketo.me
Voir https://github.com/cboden/Ratchet-examples pour quelques démonstrations de travail prêtes à l'emploi utilisant Ratchet.
Besoin d'aide ? Vous avez une question ? Vous souhaitez faire part de vos commentaires ? Écrivez un message sur la liste de diffusion des groupes Google.
<?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!' ) ; } ;