unset($this->partial[$clientID]); $request['body'] = $data; } else { $headers = explode("\r\n", $data); $status = array_shift($headers); list($request['method'], $request['path'], $request['http']) = explode(' ', $status); foreach ($headers as $key => $value) { list($header, $content) = explode(':', $value, 2); $request['headers'][$header] = trim($content); } if (!in_array($request['method'], array('GET', 'HEAD'))) { $this->partial[$clientID] = $request; return; } } parent::recvData($clientID, $request, $serverID); } public function processData($client, $data) { $client->send("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nHello, World!<br>You Requested {$data['path']}\r\n\r\n"); $client->disconnect(); } } $server = new SocketServer(); $server->setDelimiters("\r\n\r\n"); $id1 = $server->open(8002); $listener = new HTTPListener(); $server->addListener($listener); // Run the server until killed while ($server->run()) { }
<?php include 'SocketServer.php'; class ProxyListener extends SocketListener { public function processData($client, $data) { $client->broadcast($data); } } $server = new SocketServer(); $id1 = $server->open(8002); $id2 = $server->open(8003); $listener = new ProxyListener(); $server->addListener($listener); // Run the server until killed while ($server->run()) { }
<?php include 'SocketServer.php'; class GPS_Listener extends SocketListener { public function processData($client, $data) { switch ($data[0]) { case "": $client->setTag(substr($data, 1)); break; case "": $DeviceID = $client->getTag(); DB::query("UPDATE locations SET position=? WHERE DeviceID=?", $data, $DeviceID); break; } } } $server = new SocketServer(); $id1 = $server->open(8001); $listener = new GPS_Listener(); $server->addListener($listener); while ($server->run()) { }