A simple PHP WebSocket implementation for PHP 5.3
Switch branches/tags
Nothing to show
Pull request Compare This branch is 355 commits behind varspool:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


PHP WebSocket

A simple PHP 5.3 WebSocket server implementation that follows draft 75 and draft 76 if the WebSockets specification.

  • Supports draft 75 and draft 76 of WebSocket RFC
  • Supports Flash Socket Policy requests
  • Application module, the server can be extended by custom behaviors

Server example

This creates a server on localhost:8000 with one Application that listens on ws://localhost:8000/echo:

$server = new \WebSocket\Server('localhost', 8000);
$server->registerApplication('echo', \WebSocket\Application\EchoApplication::getInstance());

Example server Application

This server Applications simply echoes all messages back to all connected clients.

class EchoApplication extends Application
    private $clients = array();

	public function onConnect($client)
        $this->clients[] = $client;

    public function onDisconnect($client)
        $key = array_search($client, $this->clients);
        if ($key) {

    public function onData($data, $client)
        foreach ($this->clients as $sendto) {


var server = new WebPush('ws://localhost:8000/echo');

server.bind('open', function() {
	// Connection openend...
	server.send("Hello, I'm there!");

server.bind('close', function() {
	// Connection closed... 

server.bind('message', function(data) {
	// Data received

Libraries used