Hello, IKC creator here.  I've been very busy with a few large project and
haven't had the time to look into this properly. 

On 06-May-2011 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.

A disconnecting kernel isn't really an error.  You should use 'unregister' to
find out when a remote kernel disconnects.  

> $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).

I have a very sneaky suspition that the IKC connection is being set up (and the
register events being sent) before you set up the monitoring.

Monitoring should be set up before spawning a client (or server).  Just make
sure the responder is active with 

   POE::Component::IKC::Responder->spawn()

-Philip

Reply via email to