コード例 #1
0
ファイル: chatroom.php プロジェクト: danielmunro/beehive
<?php

require_once __DIR__ . '/../autoloader.php';
$beehive = new Beehive\Server('127.0.0.1', 9000);
$beehive->setClientType('\\Beehive\\Clients\\Telnet');
$clients = [];
$beehive->setConnectCallback(function ($client) use(&$clients) {
    $clients[] = $client;
});
$beehive->setReadCallback(function ($sender, $input) use(&$clients) {
    // tell the server to echo any input back as output
    foreach ($clients as $client) {
        $client->write('[client ' . $sender->getID() . "] " . $input . "\r\n");
    }
});
$beehive->setDisconnectCallback(function ($client) use(&$clients) {
    $i = array_search($client, $clients);
    unset($clients[$i]);
});
$beehive->listen();
コード例 #2
0
ファイル: server.php プロジェクト: danielmunro/beehive
    $clients[] = $client;
    clientAdded($client);
    clientList($client);
});
$beehive->setReadCallback(function (Beehive\Client $sender, $input) use(&$clients) {
    // For any valid json request sent to the server, relay a message to all
    // connected clients with the sender and the message.
    $incoming = json_decode($input);
    if ($incoming) {
        $message = $incoming->message;
        client($sender, $message);
    }
});
$beehive->setDisconnectCallback(function (Beehive\Client $client) use(&$clients) {
    // Remove disconnected clients from the $clients array.
    $i = array_search($client, $clients);
    unset($clients[$i]);
    clientRemoved($client);
});
/**
 * Tell beehive to start listening.
 */
$beehive->listen();
function clientList(Beehive\Client $client)
{
    global $clients;
    $client->write(json_encode(['action' => 'clientList', 'clients' => $clients]));
}
function clientAdded(Beehive\Client $client)
{
    broadcast(json_encode(['action' => 'clientAdded', 'client' => $client]), [$client]);
}