<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;" dir="ltr">
<p></p>
<div>I got the logs with the DEBUG flag on, does this mean the server closed the connection?</div>
<div><br>
</div>
<div>1003 :  2017/6/14 18:05:19.590DBG  :  [5708] lws: lws_header_table_attach: wsi 0x7fddf002de00: ah 0x7fddf0009f70: count 1 (on exit)</div>
<div>1004 :  2017/6/14 18:05:19.590DBG  :  [5708] lws: lws_client_connect: direct conn</div>
<div>1005 :  2017/6/14 18:05:19.590DBG  :  [5708] lws: lws_client_connect_2</div>
<div>1006 :  2017/6/14 18:05:19.590DBG  :  [5708] lws: lws_client_connect_2: address 105.145.65.86</div>
<div></div>
<div>1022 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: insert_wsi_socket_into_fds: 0x7fddf002de00: tsi=0, sock=14, pos-in-fds=2</div>
<div>1023 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: LWS_CALLBACK_WSI_CREATE</div>
<div>1024 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: nonblocking connect retry</div>
<div>1025 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: wsc loop starting</div>
<div>1026 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: service_fd: closing due to 0 length read</div>
<div>1027 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: Close and handled</div>
<div>1028 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: lws_close_free_wsi: shutting down connection: 0x7fddf001f910</div>
<div>1029 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: service_fd: closing due to 0 length read</div>
<div>1030 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: Close and handled</div>
<div>1031 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: lws_close_free_wsi: real just_kill_connection: 0x7fddf001f910</div>
<div>1032 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: remove_wsi_socket_from_fds: wsi=0x7fddf001f910, sock=13, fds pos=1, end guy pos=3, endfd=0</div>
<div>1033 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: calling back CLOSED</div>
<div>1034 :  2017/6/14 18:05:19.593DBG  :  [5708] lws: LWS_CALLBACK_CLOSED</div>
<div><br>
</div>
<br>
<p></p>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Andy Green <andy@warmcat.com><br>
<b>Sent:</b> Wednesday, June 14, 2017 3:53 PM<br>
<b>To:</b> Ash 20001; libwebsockets@ml.libwebsockets.org<br>
<b>Subject:</b> Re: [Libwebsockets] Is there a way to reuse a lws_context without destroying it</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText"><br>
<br>
On June 15, 2017 6:45:33 AM GMT+08:00, Ash 20001 <ash20001@hotmail.com> wrote:<br>
>1.  you are right, the test-client does handle closed/connection error<br>
>callbacks, but the code itself does not initiate a disconnect from the<br>
>server but rather it handles cases where the server dies...not sure if<br>
>that would make a difference. in my application the client is<br>
>disconnecting.<br>
<br>
No test-client also does initiate a disconnect from the server.  The connection gets a random 'lifetime' when it is made, after sending that many messages it closes the connection and after the ratelimit period the outer loop will create a new one.<br>
<br>
>2.  I can try a later websockets however is there any logging I can put<br>
>into libwebsockets to know why after connection i get a callback_closed<br>
>event after some time randomly? The server is not disconnecting from<br>
>what I can see.<br>
<br>
As I said<br>
<br>
>>In later lws in CONNECTION_ERROR, *in may point to a string describing<br>
>>the problem.<br>
<br>
If lws did something that failed and initiates the close, there are like 20 different reason strings to help debug it.<br>
<br>
If the peer closes the socket though, 'in' will be NULL.<br>
<br>
You can turn up the logging to get additional clues, build in DEBUG mode at cmake (see README.build.md)  and set the logging level high (eg -d 65535 on the test client).<br>
<br>
-Andy<br>
<br>
><br>
><br>
>________________________________<br>
>From: Andy Green <andy@warmcat.com><br>
>Sent: Wednesday, June 14, 2017 3:36 PM<br>
>To: Ash 20001; libwebsockets@ml.libwebsockets.org<br>
>Subject: Re: [Libwebsockets] Is there a way to reuse a lws_context<br>
>without destroying it<br>
><br>
><br>
><br>
>On June 15, 2017 1:29:46 AM GMT+08:00, Ash 20001 <ash20001@hotmail.com><br>
>wrote:<br>
>>sorry i forgot to mention that on reconnect i am connecting to a<br>
>>different port and potentially even different server ip. Is that why<br>
>it<br>
>>won't work with the same context?<br>
><br>
>Doubt it, every connect starts fresh.<br>
><br>
>>________________________________<br>
>>From: Ash 20001 <ash20001@hotmail.com><br>
>>Sent: Wednesday, June 14, 2017 8:47 AM<br>
>>To: Andy Green<br>
>>Subject: Re: [Libwebsockets] Is there a way to reuse a lws_context<br>
>>without destroying it<br>
>><br>
>><br>
>>I am using 1.7 websockets. When I try it again, I start immediately<br>
><br>
>1.7 is too old... please see if you still have a problem on master lws.<br>
><br>
>>getting callback_closed messages after lws_client_connect_via_info is<br>
>>called. I have no idea why I am getting these messages but if I<br>
>destroy<br>
>>the context and then call lws_Create_Context again, it works.<br>
><br>
>In later lws in CONNECTION_ERROR, *in may point to a string describing<br>
>the problem.<br>
><br>
>><br>
>>In libwebsockets-test-client, it doesn't seem to handle callback<br>
>closed<br>
>>or callback connection error. Normally during these events I exit out<br>
><br>
>It does handle them, or it doesn't know it should retry (mymemory only<br>
>goesback to v2.0-ish though).<br>
><br>
>>of the main lws_Service loop, and then later I try to call<br>
>>connect_via_info again, restart the service loop, and then run into<br>
>the<br>
>>issue above. What should I do to prevent this?<br>
><br>
>See if it still happens on later lws.<br>
><br>
>>Yes openssl is being trashed and messing around with other threads<br>
>>using curl to an https source for instance so I am trying to<br>
>workaround<br>
>>it because I cannot change the openssl version.<br>
><br>
>You're going to have to change something...<br>
><br>
>-Andy<br>
><br>
>><br>
>>________________________________<br>
>>From: Andy Green <andy@warmcat.com><br>
>>Sent: Wednesday, June 14, 2017 12:29 AM<br>
>>To: libwebsockets@ml.libwebsockets.org; Ash 20001;<br>
>>libwebsockets@ml.libwebsockets.org<br>
>>Subject: Re: [Libwebsockets] Is there a way to reuse a lws_context<br>
>>without destroying it<br>
>><br>
>><br>
>><br>
>>On June 14, 2017 2:35:24 PM GMT+08:00, Ash 20001<br>
><ash20001@hotmail.com><br>
>>wrote:<br>
>>>Is there a way to call lws_create_context just once for program<br>
>>>lifetime as a client, and use that context for many connections (ie.<br>
>>>connect to a server, disconnect, repeat)? I have tried but it doesn't<br>
>>>seem to work on the second connection.<br>
>><br>
>>Yes it should be fine.<br>
>><br>
>>Libwebsockets-test-client does exactly this in its normal operation.<br>
>><br>
>>What exactly happens (and does it happen on lws master?)<br>
>><br>
>>>The reason I ask is because I am having SSL issues with other threads<br>
>>>that I have no control over in a process which use ssl functions in<br>
>>>CURL. lws_destroy_context globally destructs SSL state and causes<br>
>>>issues.  My openssl version is rather old 0.9.8 and cannot be<br>
>changed.<br>
>><br>
>>Yeah.... we have seen it before.  Later openssl fixed it.<br>
>><br>
>>It will trash openssl for the whole process.  Is that why you can't<br>
>get<br>
>>a second client connection in lws?<br>
>><br>
>>-Andy<br>
>><br>
>>><br>
>>>Thanks!<br>
>>><br>
>>>(Sorry if I sent two emails, not sure if the first one went through<br>
>>>because I was trying to subscribe to the mailing list).<br>
</div>
</span></font></div>
</div>
</body>
</html>