Author: bdonlan
Date: 2005-11-16 20:29:44 -0500 (Wed, 16 Nov 2005)
New Revision: 924
Added:
trunk/perl/client/clitest.pl
Log:
client demo script
Added: trunk/perl/client/clitest.pl
===================================================================
--- trunk/perl/client/clitest.pl 2005-11-15 04:20:54 UTC (rev 923)
+++ trunk/perl/client/clitest.pl 2005-11-17 01:29:44 UTC (rev 924)
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+#BEGIN { eval { require Event; } }
+
+use POE;
+use Haver::Client;
+
+POE::Session->create(
+ inline_states => {
+ _start => sub {
+ print "id=" . $_[SESSION]->ID, "\n";
+ Haver::Client->create(alias => 'haver');
+ $poe_kernel->post('haver', 'register', 'all');
+ $poe_kernel->post('haver', 'connect',
+ name => 'testbot',
+ host => 'hardison.net',
+ port => 7575,
+ );
+ },
+ haver_READY => sub {
+ print "ready\n";
+ $poe_kernel->post('haver', 'join', 'lobby');
+ },
+ haver_JOIN => sub {
+ my ($chan, $who) = @_[ARG1,ARG2];
+ $poe_kernel->post('haver', 'public', $chan, 'say', "Hi, $who");
+ },
+ haver_PART => sub {
+ my ($chan, $who) = @_[ARG1,ARG2];
+ $poe_kernel->post('haver', 'public', $chan, 'say', "Bye, $who");
+ },
+ haver_IJOINED => sub {
+ my $chan = $_[ARG1];
+ $poe_kernel->post('haver', 'public', $chan, 'say', 'Hi, all!');
+ },
+ haver_IPARTED => sub {
+ # $poe_kernel->post('haver', 'disconnect');
+ $poe_kernel->post('haver', 'destroy');
+ },
+ haver_PUBLIC => sub {
+ my ($chan, $who, $type, @args) = @_[ARG1..$#_];
+ return unless $type eq 'say';
+ return if $who eq 'testbot';
+ $poe_kernel->post('haver', 'public', $chan, 'say', "$who:
$args[0]");
+ if (@args[0] eq 'go away') {
+ $poe_kernel->post('haver', 'part', $chan);
+ }
+ },
+ haver_PRIVATE => sub {
+ my ($who, $t, @args) = @_[ARG1..$#_];
+ $poe_kernel->post('haver', 'private', $who, $t, @args);
+ },
+ });
+$poe_kernel->run();
Property changes on: trunk/perl/client/clitest.pl
___________________________________________________________________
Name: svn:eol-style
+ native