Ratchet, des Websockets avec PHP


Les Websockets permettent de maintenir une connexion bidirectionnelle ouverte entre un navigateur et un serveur. Ce mécanisme sert pour beaucoup de choses, notamment avec des Webwares qui envoient et reçoivent régulièrement des données ou dans l’optique d’avoir des performances élevées.

 
Ratchet est un bibliothèque PHP qui implémente les Websockets. Elle permet de maintenir une connexion ouverte entre un client et un serveur afin que l’un ou l’autre envoie des données en temps réel.

Il suffit d’implémenter l’interface suivante :

namespace MyApp;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;

class Chat implements MessageComponentInterface {
    public function onOpen(ConnectionInterface $conn) {
    }

    public function onMessage(ConnectionInterface $from, $msg) {
    }

    public function onClose(ConnectionInterface $conn) {
    }

    public function onError(ConnectionInterface $conn, \Exception $e) {
    }
}
...

L’instanciation du serveur est aussi très simple :

<?php
use Ratchet\Server\IoServer;
use MyApp\Chat;

    $server = IoServer::factory(
        new Chat()
      , 8000
    );

    $server->run();

 
La bibliothèque propose de multiples composants :

  • IoServer (the core to handle the events)
  • WsServer (for communicating with W3C WebSocket API)
  • SessionProvider (for handling the sessions)
  • WampServer (provides the RPC and PubSub patterns)
  • FlashPolicy (Flash fallback for unsupported browsers)
  • IpBlackList (prevent any IPs from opening connections)

Vous trouverez pleins d’exemples sur le site de l’éditeur, dans la documentation qui est d’ailleurs très complète.

Si vous avez l’intention de développer un webware qui fait beaucoup d’échange de données, RatChet est fait pour vous.

Téléchargez Ratchet