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
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();
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);
}
}
}
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
});
- SplClassLoader by the PHP Standards Working Group
- phpWebSockets by Moritz Wutz
- jQuery
- web-socket-js by Hiroshi Ichikawa
- SWFObject