Normally IKC's author is watching the list, but your mail might not have 
reached him or he may be busy.  Have you tried contacting him directly?

-- 
Rocco Caputo <rcap...@pobox.com>

On May 5, 2011, at 20:03, John R. wrote:

> I would like to have my POE client recoever from a variety of IKC
> failure scenarios.  For example, detect that the IKC server has gone
> away and reconnect when it joins.
> 
> Here is how I call the client:
> 
> POE::Component::IKC::Client->spawn(
>            host=>'locahost',
>            port=>5200,
>            name=>'Counter',
>            on_error => \&ikc_error,
>            on_connect=> sub { Logger->log('counter_gui connected to
> radio') },
> );
> 
> POE::Component::IKC::Responder->spawn();
> 
> sub ikc_error {
>    Logger->log('counter_gui could not connect via IKC to Radio');
> }
> 
> However, if the server goes down this handler is not hit either at
> initial drop or when I attempt to post to the remote kernel.  It does
> get hit if server is not there at time client is executed.
> 
> Here is how the client posts:
> 
> $kernel->post('IKC', 'post', "poe://Radio/radio/set_freq", $freq);
> 
> What does happen after I post to down server are messages such as:
> 
> 23855: MSG TO $VAR1 = {
>          'kernel' => 'Radio',
>          'session' => 'radio',
>          'state' => 'set_freq'
>        };
> 23855: Unknown kernel 'Radio'.
> 23855: Known kernels:  at
> /usr/lib/perl5/vendor_perl/5.12.3/POE/Component/IKC/Responder.pm line 761.
> 
> So I looked at documentation for POE::Component::IKC::Responder and it
> appears there is something in there that should do what I want (for
> example "monitor").   So I added this code after spawning the Responder:
> 
> $poe_kernel->post('IKC', 'monitor', '*', {
>                                       register=>'remote_register'
>                                     });
> 
> sub remote_register {
> 
>    Logger->log('counter_gui just detected IKC register');
> }
> 
> However, this code code does not get hit on a connection (I figured I
> would add unregister later if that was what I needed).
> 
> So, what steps am I missing?  Or, is what I want to do not feasible?
> 
> Thanks,
> 
> John

Reply via email to