Skip to content

Instantly share code, notes, and snippets.

@imconcerned
Created October 8, 2015 20:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save imconcerned/337a6a10065819bd1834 to your computer and use it in GitHub Desktop.
Save imconcerned/337a6a10065819bd1834 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl6
use v6;
my @clients;
my $max_id = 0;
sub handle-socket ($sock) {
my $id = $max_id++;
$sock.print("Hi! You are $id.\n");
@clients>>.print("* $id connected\n");
# aka: $_.print('stuff') for @clients
@clients.push($sock);
whenever $sock.chars-supply -> $bytes {
@clients>>.print("{$id}: $bytes");
LAST {
@clients .= grep({ $_ !eqv $sock });
@clients>>.print("* $id disconnected\n");
}
}
}
react {
whenever IO::Socket::Async.listen('localhost', 3005) -> $sock {
start {
handle-socket($sock);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment