aaaaaa123456789 icon

PHP socket server testing code

aaaaaa123456789 | PRO | 11/07/13 07:29:43 AM UTC | 0 ⭐ | 432 👁️ | Never ⏰ | []
PHP |

1.38 KB

|

None

|

0 👍

/

0 👎

<?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