#websocket
Вопрос:
Я создал серверную часть websocket с websocketpp, моему клиенту нужно будет загружать файл размером 1-2 МБ при каждом запуске. Я могу отправить это в одном запросе на отправку на своем сервере, но хорошая ли это идея? можно ли это сделать, не разбивая его на более мелкие данные и не передавая их потоком, если максимум это будет всего 1-2 мбайт?
Ответ №1:
Не беспокойся об этом. Веб-сокеты кажутся тонким слоем поверх обычных сокетов, поэтому пусть уровень TCP/IP позаботится о буферизации, если только нет причин для ее разрыва. На принимающей стороне не забывайте, что пакеты могут быть разделены или объединены, когда они поступают, поэтому, хотя вы можете полагаться на то, что они поступают в том же порядке, вы не можете полагаться на совпадение разрывов.
Если у вас есть шумная линия или сбои, вы можете разбить их, чтобы вы могли повторить отдельные блоки, а не пробовать все целиком, но, опять же, TCP/IP будет делать с ними свое дело.
Предостережение: Если вы используете критически важные по времени приложения в других местах, таких как VOIP, разбиение их на более мелкие фрагменты позволит пакетам реального времени вписываться в поток там, где это необходимо, но это внешнее соображение.