<?php
require "server.php"; // I called the socket server file this
$clients = array();
function onConnection ($client, $server) {
global $clients;
$clients[$client] = false;
$server -> send($client, "Please enter your name: ");
}
function onClose ($client, $server) {
global $clients;
$name = $clients[$client];
unset($clients[$client]);
if ($name === false) return; // if it never gave us a name, we don't care
$server -> broadcast("$name disconnected", 0, SERVER_SEND_LINE_CRLF);
}
function onMessage ($message, $client, $server) {
global $clients;
if ($clients[$client] === false) {
$clients[$client] = $message; // first message is the name
$server -> broadcast("$message connected", - $client, SERVER_SEND_LINE_CRLF);
// and we tell everyone else this person connected
return;
}
$name = $clients[$client];
$server -> broadcast("$name: $message", - $client, SERVER_SEND_LINE_CRLF);
// we send the message to everyone but the guy who sent it
}
function setupServer () {
$server = new Server();
$server -> splitMode = SERVER_SPLIT_NEWLINES_NO_BLANKS; // we split on Enters
$server -> openCallback = "onConnection";
$server -> closeCallback = "onClose";
$server -> receiveCallback = "onMessage";
return $server;
}
$myServer = setupServer();
$myServer -> open(46464); // choose any port you like
?>
Comments