#!/usr/bin/perl -w
use strict;
use POE;
use POE::Component::Server::TCP;
my %tch;
POE::Component::Server::TCP->new (
Port => 1520,
ClientInput => sub {
my ( $kernel, $heap, $input ) = @_[ KERNEL, HEAP, ARG0 ];
$heap->{seq} = 2 if $input =~ s/SQL> +//;
$heap->{seq}++ if $input =~ s/^\s+$heap->{seq} //;
$kernel->post($_ => send => $input) for keys %tch;
$kernel->yield("shutdown") if $input =~ /^bye$/;
},
InlineStates => { send => sub { $_[HEAP]->{client}->put($_[ARG0]) } },
ClientConnected => sub { $tch{ ${_[SESSION]->ID} } = 1; },
ClientDisconnected => sub { delete $tch{ ${_[SESSION]->ID} }; },
);
$poe_kernel->run;
没有评论:
发表评论