<div dir="ltr">I think the key is that you need to write your own event loop, rather than provide the one that Andy packages for us. Then, you have all of the data that you need.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 30, 2016 at 4:42 AM, 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 01/30/2016 08:21 PM, Tortoise Mailbox wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
My websockets server will have a number of clients connected to it<br>
simultaneously.  Each client will be interested in different<br>
information.  The server will send data to the clients under 2<br>
conditions: periodic updates, or on detection changed data.  Different<br>
clients will request updates at different intervals e.g., a phone with<br>
limited bandwidth might request updates every 10 seconds, but a desktop<br>
browser might request updates every 1 second.  How do I initiate writing<br>
to select clients using libwebsockets?  I may be mistaken, but the<br>
</blockquote>
<br></span>
LWS_VISIBLE LWS_EXTERN int<br>
lws_callback_on_writable(struct lws *wsi);<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
sample programs only show sending of data in response to receiving data,<br>
or sending data periodically to all clients (not specific clients).<br>
Also, is it possible to access the per-session data outside of the callback?<br>
</blockquote>
<br></span>
These are all the same issue actually, you want to hold your own list of wsi + user pointer (which you can acquire at ESTABLISHED callback and retire at the corresponding CLOSE callback).<br>
<br>
If you look at the locking in the test-server-pthreads example, you can use this to guarantee a wsi will not disappear from under you in a different thread.  And it's safe to call lws_callback_on_writable() otherwise from the other thread.<br>
<br>
-Andy<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thank you.<br>
<br>
<br>
_______________________________________________<br>
Libwebsockets mailing list<br>
<a href="mailto:Libwebsockets@ml.libwebsockets.org" target="_blank">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>
_______________________________________________<br>
Libwebsockets mailing list<br>
<a href="mailto:Libwebsockets@ml.libwebsockets.org" target="_blank">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>
</blockquote></div><br></div>