c++ - Websockets sometimes send incomplete data -
i have websocket server i've built in c++ serves basic chat server.
if send basic "hi" message data this:
binary: 10000001 10000010 10110110 00100110 01100101 01100011 11011110 01001111 byte size: 8 decoded: hi but every , won't send complete message. example of such case below:
binary: 10000001 10000010 01110111 00100010 11011011 byte size: 5 it's sending correct data, it's if it's been cut in half.
my recieving code looks this:
while (true) { char buffer[buffer_length] = ""; // (1024) recv(*msocket, buffer, buffer_length, 0); // data decoding code // ... } my understanding of tcp protocol make sure packets arrived @ destination. explain why have data loss?
first, make sure client flushing.
second (if understand question), while websocket implemented using socket, note websocket not socket. cannot merely use tcp socket calls in server retrieve data websocket client. there websocket framing data sent every websocket send(). server has inspect incoming stream of bytes , in proper area in websocket frame "message data". also, websocket data may not necessary sent in 1 websocket frame; need check frame see if websocket frame needs inspected complete "message data". see ietf spec websocket protocol: https://tools.ietf.org/html/rfc6455
Comments
Post a Comment