<div dir="ltr"><div>Would I end up with a unique 'pss' struct for each wsi (parent and child) in the case of http client?<br></div><div><br></div><div>How do I get the user pointer for a given wsi within a plugin?  I'm thinking I want to only store state in the parent wsi 'pss' struct, and then access member variables from it during http client (child) callbacks.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 6, 2017 at 4:08 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 April 7, 2017 6:58:53 AM GMT+08:00, Joel Winarske <<a href="mailto:joel.winarske@gmail.com">joel.winarske@gmail.com</a>> wrote:<br>
>Multiple http client instances via lws_client_connect_via_info().<br>
><br>
>Where can I find a good example of using the "user" pointer in<br>
>callbacks?<br>
<br>
</span>If you're being the server, eg<br>
<br>
<a href="https://github.com/warmcat/libwebsockets/blob/master/plugins/protocol_dumb_increment.c" rel="noreferrer" target="_blank">https://github.com/warmcat/<wbr>libwebsockets/blob/master/<wbr>plugins/protocol_dumb_<wbr>increment.c</a><br>
<br>
Client is the same way... set the size of the user allocation in the protocols[] struct and then cast user to a per-client 'pss' struct.  Each wsi gets his own private pss for as long as he is associated with the protocol.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Andy<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
>On Thu, Apr 6, 2017 at 3:43 PM, Andy Green <<a href="mailto:andy@warmcat.com">andy@warmcat.com</a>> wrote:<br>
><br>
>><br>
>><br>
>> On April 7, 2017 2:46:44 AM GMT+08:00, Joel Winarske <<br>
>> <a href="mailto:joel.winarske@gmail.com">joel.winarske@gmail.com</a>> wrote:<br>
>> >Hi Andy,<br>
>> ><br>
>> >Is there anything preventing simultaneous http clients, or can there<br>
>> >only<br>
>> >be one at a time?<br>
>><br>
>> What does 'clients' mean here?  You are being the server and the<br>
>clients<br>
>> are remote guys connecting to you?  Or they are your outgoing<br>
>connections?<br>
>> Either way:<br>
>><br>
>> No, you can have as many clients as you have sockets available.<br>
>><br>
>> >In my case I'm seeing two stomp on each other, but I'm figuring it's<br>
>my<br>
>> >code; thought I would ask!<br>
>><br>
>> They won't 'stomp on each other' (no better characterization also<br>
>suggests<br>
>> it's user code) in lws.  But your user code has to be appropriate, if<br>
>you<br>
>> point all clients at the same filescope static vars, naturally you<br>
>will<br>
>> have problems with vars being overwritten.  Look at how the plugin<br>
>type<br>
>> code manages a vhd for the vhost and a pss per connection.<br>
>><br>
>> -Andy<br>
>><br>
>> ><br>
>> >Thanks,<br>
>> >Joel<br>
>><br>
</div></div></blockquote></div><br></div>