Hi, Krishna.

Sorry that the docs aren't clear.  It's all Perl, so you could say:

my $server_heap;

POE::Component::Server::TCP->new(
  ...,
  Started => sub { $server_heap = $_[HEAP] },
);

... and then access the server's heap from $server_heap via closure.  Be 
careful to avoid circular references when you work like this, and you should be 
fine.

-- 
Rocco Caputo <[email protected]>

On Aug 29, 2011, at 21:20, Krishna K wrote:

> Hi,
>     I am trying to debug an issue with POE::Component::Server::TCP where the 
> client sessions do not get closed correctly when using 
> POE::Component::Client::TCP (1.311/1.312) but work as expected when using 
> 1.294.
> 
>     I am maintaining global variables to manage information on number of 
> clients that are connected/disconnected by updating them in ClientConnected() 
> and ClientDisconnected() methods, which I would like to avoid and use the 
> main listener session's heap entry (connections) as presented in the 
> documentation.
> 
> http://search.cpan.org/~rcaputo/POE/lib/POE/Component/Server/TCP.pm#HEAP_Members_for_Master_Listening_Sessions
> 
> Portion of code
> ==========
> 
> my $client_count = 0;
> POE::Component::Server::TCP->new(
>   Alias => "job_server",
>   Port  => 32080,
> 
>   # Send the client a list of available commands when it connects.
>   ClientConnected => sub {
>     $client_count++;  },
> 
>   # Make sure the job is destroyed when the client exits.
>   ClientDisconnected => sub {
>     $client_count--;  },};
> 
>  I understand that I cannot access the master listener's heap by adding of 
> the inline state handlers are added to the client sessions. Can you please 
> show me some examples on how I can access connections entry from listener's 
> heap.
> 
> 
> 
> Thanks,
> Krishna

Reply via email to