Yes, I agree that having something working for WS will be a good step forward regardless the approach. And you have enough food for thinking. 😊
I just was trying to point out that WebSocket is a protocol above the HTTP transport layer, and it seems logical to me to separate data callbacks for high-level protocols (which require protocol context in order to understand the data) from "raw" layer 0 transport protocols, even though it is definitely possible to put everything into a single CURLOPT_WRITEFUNCTION callback paying some efficiency or easiness price. Thanks, Dmitry Karpov -----Original Message----- From: Daniel Stenberg <dan...@haxx.se> Sent: Tuesday, June 21, 2022 10:11 AM To: Dmitry Karpov via curl-library <curl-library@lists.haxx.se> Cc: Dmitry Karpov <dkar...@roku.com> Subject: RE: About a websockets write callback On Mon, 20 Jun 2022, Dmitry Karpov via curl-library wrote: > Yes, it would be nice to have just one callback for all WS modes (RAW, > FRAME, MESSAGE) but using CURLOPT_WRITEFUNCTION callback for that > purpose doesn't seem like an optimal solution to me because of the > problems related to passing curl handle to it and making a function > call to get WS context metadata. Right, we have to pick one of the two ways where neither is optimal. I still think I'm going to try with a single CURLOPT_WRITEFUNCTION callback to start with and a "curl_ws_meta()" function that can be used from within that callback to get additional data about the frame - when used in frame mode. I think getting something working that we can try with is a good thing and then if this turns out feeling too awkward and special, we can switch it around and do a separate callback option instead. -- / 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/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html