<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Thanks, Andy! It’s exactly what I was looking for.<div class=""><br class=""><div class=""><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">— <br class="">With respect, M.<br class="">Public GnuPG key: 0x01731B47DBD56C0F<br class="">fpr: 0226 54EE C1FF 8636 36EF  2AC9 BCE9 CFC7 9CF4 6747</div>
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">19 вер. 2020 о 21:33 Andy Green <<a href="mailto:andy@warmcat.com" class="">andy@warmcat.com</a>> написав(ла):</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class=""><br class="">On 9/19/20 6:38 PM, Mykola Stryebkov wrote:<br class=""><blockquote type="cite" class="">Hi,<br class="">I’m probably missing something.<br class="">Is there any way to know the size of received websocket frame?<br class=""></blockquote><br class="">You can find how many bytes are left in the current fragment, but that may not be as useful as you are hoping<br class=""><br class=""><a href="https://libwebsockets.org/git/libwebsockets/tree/include/libwebsockets/lws-misc.h#n604-624" class="">https://libwebsockets.org/git/libwebsockets/tree/include/libwebsockets/lws-misc.h#n604-624</a><br class=""><br class="">Ws fragments are analogous to tcp frames, they may be refragmented by intermediaries and their size is a function of something unrelated to the payload, the mtu or the buffering arrangements at the sender or an intermediary.<br class=""><br class="">The message, made up of one or more fragments is the logical unit that's transferred over ws, and its length isn't known beforehand if it comes in multiple fragments, you keep appending fragments until you see one with the FIN bit set.<br class=""><br class="">You can find out if this RX is the final one with this.<br class=""><br class="">https://libwebsockets.org/git/libwebsockets/tree/include/libwebsockets/lws-ws-state.h#n40-46<br class=""><br class="">-Andy<br class=""></div></div></blockquote></div><br class=""></div></div></body></html>