ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-MP/eg/chat_client
(Generate patch)

Comparing AnyEvent-MP/eg/chat_client (file contents):
Revision 1.7 by root, Mon Aug 17 03:56:34 2009 UTC vs.
Revision 1.8 by root, Wed Aug 19 05:57:14 2009 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2
3# Usage: ./chat_client nickname optional-servername
4# implement a chat client using "traditional message passing"
2 5
3use common::sense; 6use common::sense;
4use AnyEvent::MP; 7use AnyEvent::MP;
5use AnyEvent::MP::Global; 8use AnyEvent::MP::Global;
6 9
18 my $servernodes = AnyEvent::MP::Global::find "eg_chat_server" 21 my $servernodes = AnyEvent::MP::Global::find "eg_chat_server"
19 or return after 1, \&server_connect; 22 or return after 1, \&server_connect;
20 23
21 print "\rconnecting...\n"; 24 print "\rconnecting...\n";
22 25
26 $server = $servernodes->[0];
27
23 $client = port { print "\r \r@_\n> " }; 28 $client = port { print "\r \r@_\n> " };
24 mon $client, sub { 29 mon $client, sub {
25 print "\rdisconnected @_\n"; 30 print "\rdisconnected @_\n";
26 &server_connect; 31 &server_connect;
27 }; 32 };
28 33
29 $server = spawn $servernodes->[0], "::client_connect", $client, $nick; 34 snd $server, join => $client, $nick;
30 mon $server, $client; 35 mon $server, $client;
31} 36}
32 37
33server_connect; 38server_connect;
34 39
35my $w = AE::io 0, 0, sub { 40my $w = AE::io 0, 0, sub {
36 chomp (my $line = <STDIN>); 41 chomp (my $line = <STDIN>);
37 print "> "; 42 print "> ";
38 snd $server, $line; 43 snd $server, privmsg => $nick, $line
44 if $server;
39}; 45};
40 46
41print "> "; 47print "> ";
42AE::cv->recv; 48AE::cv->recv;
43 49

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines