// )); // 全イベント $serv->registerEvent('connect', function ($handle) use(&$serv) { printf("connected %s:%d\n", $handle->address, $handle->port); printf("now \"server\" connections %d\n", $serv->getConnections()); foreach ($serv->getAllResourceConnections() as $resource => $connections) { printf("now \"%s\" connections %d\n", $resource, $connections); } }); $serv->registerEvent('disconnect', function ($handle) use(&$serv) { printf(sprintf("disconnected %s:%d\n", $handle->address, $handle->port)); }); // チャット用イベント $serv->registerEvent('connect', 'chat', function ($client) use(&$serv) { $client->sendMessage(sprintf('%s:%d', $client->address, $client->port)); $serv->broadcastMessage(sprintf('@%d', $serv->getResourceConnections($client->resource))); $serv->broadcastMessage(sprintf('%s:%dさんがチャットに参加しました。' . "\n", $client->address, $client->port)); }); $serv->registerEvent('disconnect', 'chat', function ($client) use(&$serv) { $serv->broadcastMessage(sprintf('@%d', $serv->getResourceConnections($client->resource))); $serv->broadcastMessage(sprintf('%s:%dさんがチャットを終了しました。' . "\n", $client->address, $client->port)); }); $serv->registerEvent('receivedMessage', 'chat', function ($client, $message) use(&$serv) { $serv->broadcastMessage(array($client, sprintf('> %s' . "\n", $message), sprintf('%s:%dさん: %s' . "\n", $client->address, $client->port, $message))); }); // レーザー用イベント $serv->registerEvent('connect', 'lazer', function ($client) use(&$serv) { $client->sendMessage(sprintf('%s:%d', $client->address, $client->port)); $serv->broadcastMessage(sprintf('@%d', $serv->getResourceConnections($client->resource))); $serv->broadcastMessage(sprintf('%s:%d' . "\n", $client->address, $client->port)); });