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


Reply via email to