예제 #1
0
파일: server.php 프로젝트: Zenya3000/BeeJee
                    }
                });
                $sender->process = $process;
            }
        }
    }
    public $clientId = 0;
    public function onClientConnected(SocketServer $server, SocketClient $newClient)
    {
        $newClient->buffer = "";
        $newClient->process = false;
        $newClient->verified = false;
        $newClient->id = $this->clientId++;
    }
    public function onClientDisconnected(SocketServer $server, SocketClient $client)
    {
        if ($client->process) {
            $client->process->stop();
            $client->process = false;
        }
    }
    public function onLogMessage(SocketServer $server, $message)
    {
    }
}
global $params;
$params = @json_decode($_SERVER['argv'][2], true) ?: array();
$listener = new Listener();
$webSocket = new SocketServer(@$params['ip'] ?: '127.0.0.1');
$webSocket->addListener($listener);
$webSocket->start();
<?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 ProxyListener extends SocketListener
{
    protected $target;
    public function processData($client, $data)
    {
        $this->server->broadcast($data, $this->target);
    }
    public function setTarget($target)
    {
        $this->target = $target;
    }
}
$server = new SocketServer();
$id1 = $server->open(8002);
$id2 = $server->open(8003);
// Instantiate our listener and attach it to the server
$listener = new ProxyListener();
$server->addListener($listener, $id1);
$listener->setTarget($id2);
$listener = new ProxyListener();
$server->addListener($listener, $id2);
$listener->setTarget($id1);
// Run the server until killed
while ($server->run()) {
}