Buy commercial curl support from WolfSSL. We help you work
out your issues, debug your libcurl applications, use the API, port to new
platforms, add new features and more. With a team lead by the curl founder
himself.
RE: is it posible using websocket API with multi handlers with select?
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: José Luis Zabalza Cestau via curl-library <curl-library_at_lists.haxx.se>
Date: Tue, 1 Aug 2023 07:27:06 +0000
Thanks Daniel but I don't think it is a bug. I think something is missing in the code.
I attatch a NODE WebServer example (tar.bz2) using https://github.com/websockets/ws library and a multy-legacy.c modified code.
wssserver.js set up a little web server with two functions
- http://localhost:8080/query return a json object (query data)
- ws://localhost:8080/ws begins a websocket connection. Firstly, it sends a json object (Connection Data) and then it continues periodicaly sending another json object (Periodic data) every second.
multi-legacy-ws.c is a bit complicated. It begins printing a menu and waiting for a keyboard command.
- "q" command exit the application.
- "h" command prints menu.
- "p" command sends a http://localhost:8080/query get request
- "w" command begins a websocket only connection to ws://localhost:8080/ws
multi-legacy-ws.c: has a main while loop waiting for quit command and internaly has a loop waiting for select actions, keyboard or multi curl handlers actions. When a action is found, it gets out of the select loop and it check if is a keyboard action or curl action.
When a curl handler action is found, a curl_multi_info_read() loop begins for get the curl handler actions. If WS handler transfer is complete, the received data is read with curl_ws_recv() function.
Now, I think I have to do something but I don't know what for "reload" the WS handler. I try remove and add WS handler from the multi handler, but don't work.
Thanks for the help.
Note: I am using libcurl 7.88.1 on Ubuntu 22.04.2 LTS
________________________________
De: Daniel Stenberg <daniel_at_haxx.se>
Enviado: lunes, 31 de julio de 2023 17:51
Para: José Luis Zabalza Cestau via curl-library <curl-library_at_lists.haxx.se>
Cc: José Luis Zabalza Cestau <jzabalza_at_naitec.es>
Asunto: Re: is it posible using websocket API with multi handlers with select?
Correo enviado desde un remitente externo.
Considera este correo como potencialmente peligroso si contiene adjuntos o enlaces a direcciones de internet
On Mon, 31 Jul 2023, José Luis Zabalza Cestau via curl-library wrote:
> My first try was a modified https://curl.se/libcurl/c/multi-legacy.html
> example. I can read a command from keyboard, send a http query, and connect
> to websocket, at time but periodic data received form websocket don't wakeap
> the select.
That sounds like a bug!
Do you have a way (for us) to reproduce this? Can to submit this as a new
issue over at https://github.com/curl/curl/issues ?
Received on 2023-08-01
Date: Tue, 1 Aug 2023 07:27:06 +0000
Thanks Daniel but I don't think it is a bug. I think something is missing in the code.
I attatch a NODE WebServer example (tar.bz2) using https://github.com/websockets/ws library and a multy-legacy.c modified code.
wssserver.js set up a little web server with two functions
- http://localhost:8080/query return a json object (query data)
- ws://localhost:8080/ws begins a websocket connection. Firstly, it sends a json object (Connection Data) and then it continues periodicaly sending another json object (Periodic data) every second.
multi-legacy-ws.c is a bit complicated. It begins printing a menu and waiting for a keyboard command.
- "q" command exit the application.
- "h" command prints menu.
- "p" command sends a http://localhost:8080/query get request
- "w" command begins a websocket only connection to ws://localhost:8080/ws
multi-legacy-ws.c: has a main while loop waiting for quit command and internaly has a loop waiting for select actions, keyboard or multi curl handlers actions. When a action is found, it gets out of the select loop and it check if is a keyboard action or curl action.
When a curl handler action is found, a curl_multi_info_read() loop begins for get the curl handler actions. If WS handler transfer is complete, the received data is read with curl_ws_recv() function.
Now, I think I have to do something but I don't know what for "reload" the WS handler. I try remove and add WS handler from the multi handler, but don't work.
Thanks for the help.
Note: I am using libcurl 7.88.1 on Ubuntu 22.04.2 LTS
________________________________
De: Daniel Stenberg <daniel_at_haxx.se>
Enviado: lunes, 31 de julio de 2023 17:51
Para: José Luis Zabalza Cestau via curl-library <curl-library_at_lists.haxx.se>
Cc: José Luis Zabalza Cestau <jzabalza_at_naitec.es>
Asunto: Re: is it posible using websocket API with multi handlers with select?
Correo enviado desde un remitente externo.
Considera este correo como potencialmente peligroso si contiene adjuntos o enlaces a direcciones de internet
On Mon, 31 Jul 2023, José Luis Zabalza Cestau via curl-library wrote:
> My first try was a modified https://curl.se/libcurl/c/multi-legacy.html
> example. I can read a command from keyboard, send a http query, and connect
> to websocket, at time but periodic data received form websocket don't wakeap
> the select.
That sounds like a bug!
Do you have a way (for us) to reproduce this? Can to submit this as a new
issue over at https://github.com/curl/curl/issues ?
-- / daniel.haxx.se | Commercial curl support up to 24x7 is available! | Private help, bug fixes, support, ports, new features | https://curl.se/support.html
-- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html
- text/x-csrc attachment: multi-legacy-ws.c
- application/x-bzip attachment: wsserver.js.tar.bz2