<html><head>
  <meta http-equiv="Content-Type" content="text/html; CHARSET=UTF-8">
  <meta name="GENERATOR" content="GtkHTML/4.2.2">
</head>
<body><div><pre style="color: rgb(0, 0, 0);">Hello Francis,</pre><pre style="color: rgb(0, 0, 0);"><br></pre><pre style="color: rgb(0, 0, 0);"><pre>according to your answer I have still one question. The debug output shows that the connection handshake was done without error. </pre><pre>In this case the equivalent listener function fired on_ready. The client function doesn't.</pre><pre><br></pre><pre>nopoll_conn.c:</pre><pre>nopoll_conn_complete_handshake_check_listener()</pre><pre>nopoll_conn_complete_handshake_check_client()</pre><pre><br></pre><pre>Is this behavior desired? Or should the client function also fired on_ready?</pre><pre><br></pre><pre>debug output:</pre><pre>(proc 22914): (debug)nopoll_conn.c:2655 Sec-Websocket-Accept matches expected value..nopoll_conn_complete_handshake_check_client (0x1d71420, 0x1d72380)=1</pre><pre><br></pre><pre>Thank you so much</pre><pre>Elmar</pre></pre><pre style="color: rgb(0, 0, 0);"><br></pre></div><div>On Sun, 2017-02-12 at 13:47 +0100, Francis Brosnan Blázquez wrote:</div><blockquote type="cite">
<br>
<blockquote type="CITE">
<pre>Hello everyone,
</pre>
</blockquote>
<br>
Hello Elmar,<br>
<br>
<blockquote type="CITE">
<pre>I have just started to use nopoll as client application. I run the
basic WebSocket client example successfully. 
I tried to use nopoll_conn_set_on_ready() instead of
nopoll_conn_wait_until_connection_ready(). But my on_ready call back
never appears. Did I misunderstand something? Here is my code:

#include <stdio.h>
#include <nopoll.h>

nopoll_bool on_ready(noPollCtx *ctx, noPollConn *conn, noPollPtr
user_data){
  // send a message
  printf("I'm ready!\n");
  return nopoll_true;
}

int
main (int   argc,
      char *argv[])
{
  noPollCtx * ctx = nopoll_ctx_new ();
  if (! ctx) {
      // error some handling code here
  }

  nopoll_log_enable(ctx, nopoll_true);

  // call to create a connection
  noPollConn * conn = nopoll_conn_new (ctx, "localhost", "8080", NULL,
NULL, NULL, NULL);
  if (! nopoll_conn_is_ok (conn)) {
      // some error handling here
  }

  // set ready handle
  nopoll_conn_set_on_ready         (conn, on_ready, NULL);
</pre>
</blockquote>
<br>
Ok, on_ready function is not fired until it is not fully established the connection.<br>
You'll have to send something or force negotiation with something like<br>
this:<br>
<br>
         // block during 5 seconds until connection is ready or timeout is reached<br>
        nopoll_conn_wait_until_connection_ready (conn, 5);<br>
<br>
See relevant information at nopoll_conn_new explaining more details about<br>
your question:<br>
<br>
<a href="http://www.aspl.es/nopoll/html/group__nopoll__conn_ga0b31b7e0694d654663b49ecaf82c0776.html#ga0b31b7e0694d654663b49ecaf82c0776">http://www.aspl.es/nopoll/html/group__nopoll__conn_ga0b31b7e0694d654663b49ecaf82c0776.html#ga0b31b7e0694d654663b49ecaf82c0776</a><br>
<br>
Also, checkout the following links for fully working and complete examples:<br>
<br>
<a href="https://github.com/ASPLes/nopoll/blob/master/test/nopoll-regression-client.c">https://github.com/ASPLes/nopoll/blob/master/test/nopoll-regression-client.c</a><br>
<a href="https://github.com/ASPLes/nopoll/blob/master/test/nopoll-regression-listener.c">https://github.com/ASPLes/nopoll/blob/master/test/nopoll-regression-listener.c</a><br>
<br>
Best Regards,<br>
<br>
<br>
<blockquote type="CITE">
<pre>
  // now call to wait for the loop to notify events
  nopoll_loop_wait (ctx, 0);
  }

Thanks  
Elmar
_______________________________________________
noPoll mailing list
<a href="mailto:noPoll@lists.aspl.es">noPoll@lists.aspl.es</a>
<a href="http://lists.aspl.es/cgi-bin/mailman/listinfo/nopoll">http://lists.aspl.es/cgi-bin/mailman/listinfo/nopoll</a>
</pre>
</blockquote>
<br>
<table cellspacing="0" cellpadding="0" width="100%">
<tbody><tr>
<td>
<pre></pre></td></tr></tbody></table></blockquote></body></html>