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

README.md

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());
$server->run();

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) {
            unset($this->clients[$key]);
        }
    }

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

Client

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