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.5 by root, Fri Aug 14 15:53:56 2009 UTC vs.
Revision 1.6 by root, Mon Aug 17 03:50:28 2009 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2 2
3use common::sense; 3use common::sense;
4use AnyEvent::MP; 4use AnyEvent::MP;
5use AnyEvent::MP::Global;
5 6
6my ($nick, $servernode) = @ARGV; 7my ($nick, $servernode) = @ARGV;
7 8
8initialise_node "slave/", $servernode; 9initialise_node "slave/", $servernode;
9 10
10$| = 1; 11$| = 1;
11 12
12my $servernode = (resolve_node $servernode)->recv;
13
14my $port = port; 13my $port = port;
15 14
16my ($client, $server); 15my ($client, $server);
17 16
18sub server_connect { 17sub server_connect {
18 if (my $servernodes = AnyEvent::MP::Global::find "eg_chat_server") {
19 print "\rconnecting...\n"; 19 print "\rconnecting...\n";
20 20
21 $client = port { print "\r \r@_\n> " }; 21 $client = port { print "\r \r@_\n> " };
22 mon $client, sub { 22 mon $client, sub {
23 print "\rdisconnected @_\n"; 23 print "\rdisconnected @_\n";
24 &server_connect; 24 &server_connect;
25 }; 25 };
26 26
27 $server = spawn $servernode, "::client_connect", $client, $nick; 27 $server = spawn $servernodes->[0], "::client_connect", $client, $nick;
28 mon $server, $client; 28 mon $server, $client;
29 } else {
30 print "\rno registered server found, retrying in 1s...\n";
31 my $t; $t = AE::timer 1, 0, sub {
32 undef $t;
33 &server_connect;
34 };
35 }
29} 36}
30 37
31server_connect; 38server_connect;
32 39
33my $w = AE::io 0, 0, sub { 40my $w = AE::io 0, 0, sub {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines