… | |
… | |
15 | my $port = port; |
15 | my $port = port; |
16 | |
16 | |
17 | my ($client, $server); |
17 | my ($client, $server); |
18 | |
18 | |
19 | sub server_connect { |
19 | sub server_connect { |
20 | my $servernodes = grp_get "eg_chat_server2" |
20 | my $db_mon; $db_mon = db_mon eg_chat_server => sub { |
21 | or return after 1, \&server_connect; |
21 | return unless %{ $_[0] }; |
|
|
22 | undef $db_mon; |
22 | |
23 | |
23 | print "\rconnecting...\n"; |
24 | print "\rconnecting...\n"; |
24 | |
25 | |
25 | $client = port { print "\r \r@_\n> " }; |
26 | $client = port { print "\r \r@_\n> " }; |
26 | mon $client, sub { |
27 | mon $client, sub { |
27 | print "\rdisconnected @_\n"; |
28 | print "\rdisconnected @_\n"; |
28 | &server_connect; |
29 | &server_connect; |
|
|
30 | }; |
|
|
31 | |
|
|
32 | $server = spawn (keys %{ $_[0] })[0], "::client_connect", $client, $nick; |
|
|
33 | mon $server, $client; |
29 | }; |
34 | }; |
30 | |
|
|
31 | $server = spawn $servernodes->[0], "::client_connect", $client, $nick; |
|
|
32 | mon $server, $client; |
|
|
33 | } |
35 | } |
34 | |
36 | |
35 | server_connect; |
37 | server_connect; |
36 | |
38 | |
37 | my $w = AE::io 0, 0, sub { |
39 | my $w = AE::io 0, 0, sub { |