<div dir="ltr">Thanks, Andy. libuv (what I'm using) and libev seem to have diverged a few years ago, and unfortunately I'm not familiar enough with the latter to code something worth sharing. :p<div><br></div><div>It would be cool if the library used the callback to register/unregister timeout handlers, similar to how LWS_CALLBACK_{ADD/DEL/CHANGE_MODE}_POLL_FD are used. The libcurl multi API provides a similar feature--the CURLMOPT_TIMERFUNCTION option allows an API consumer to register a custom timeout handler.</div><div><br></div><div>Thanks,</div><div>-matt</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 17, 2016 at 8:02 PM, Andy Green <span dir="ltr"><<a href="mailto:andy@warmcat.com" target="_blank">andy@warmcat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On January 17, 2016 8:53:17 AM GMT+08:00, Matt Sarnoff <<a href="mailto:matt.sarnoff@gmail.com">matt.sarnoff@gmail.com</a>> wrote:<br>
>I'm currently using libwebsockets 1.6.0 in a client application with an<br>
>external polling mechanism provided by a libuv event loop. I'm not<br>
>calling<br>
>lws_service() at all.<br>
><br>
>I'm finding that I never receive LWS_CALLBACK_CLIENT_CONNECTION_ERROR<br>
>for<br>
>connection timeouts, e.g. if I specify a nonexistent host name. If I<br>
>call<br>
>lws_service() in a loop, I receive the callback after about 5 seconds,<br>
>as<br>
>expected.<br>
><br>
>My current solution involves calling lws_client_connect_via_info(),<br>
>then<br>
>calling lws_service() periodically from a uv_timer_t<br>
>until LWS_CALLBACK_CLIENT_ESTABLISHED is received or the connection<br>
>fails.<br>
>Is there a better way to handle this scenario?<br>
<br>
</span>The guy who added the basic libev support left a comment that somebody should implement timeouts using libev api, I guess that is what he meant.<br>
<br>
In the service code once a second he will check everyone to see if they crossed a timeout limit.  But the libev code as you say deals with events only in the libev realm.<br>
<br>
Can you share your existing code for this and I'll try to integrate it on the library side, just for timeout processing.<br>
<br>
-Andy<br>
<br>
><br>
>Thanks,<br>
>-matt<br>
><br>
><br>
>------------------------------------------------------------------------<br>
><br>
>_______________________________________________<br>
>Libwebsockets mailing list<br>
><a href="mailto:Libwebsockets@ml.libwebsockets.org">Libwebsockets@ml.libwebsockets.org</a><br>
><a href="http://ml.libwebsockets.org/mailman/listinfo/libwebsockets" rel="noreferrer" target="_blank">http://ml.libwebsockets.org/mailman/listinfo/libwebsockets</a><br>
<br>
</blockquote></div><br></div>