WebSocket-ответы
Формирование и отправка ответов через WebSocket-соединение. Поддерживаются текстовые и бинарные данные.
Отправка ответа
Содержимое ответа не отправляется пользователю до вызова методов text, binary или file. Чтобы отправить ответ небходимо вызвать в конце обработчика один из этих методов, иначе клиент никогда не дождется ответа.
Протокол Websockets позволяет передавать и принимать данные в текстовом и бинарном форматах.
Прием и передача данных всегда должны быть в одном формате.
Текстовый формат
void get(wsctx_t* ctx) {
ctx->response->send_text(ctx->response, "{\"message\": \"This is json\"}");
}Бинарный формат
void get(wsctx_t* ctx) {
ctx->response->send_binary(ctx->response, "Text in binary format");
}Общий формат
Метод send_data автоматически определяет формат входящего запроса и формирует ответ в аналогичном формате.
void get(wsctx_t* ctx) {
ctx->response->send_data(ctx, "Text in binary format");
}Отправка файлов
Фреймворк предоставляет метод send_file для решения задач по отправке файлов по протоколу WebSockets. Файл отправляется клиенту в бинарном формате.
void get(wsctx_t* ctx) {
ctx->response->send_file(ctx->response, "/path/image.jpg");
}Чтобы быть уверенным, что к ответу не будет добавлено никакое нежелательное содержимое, при вызове метода send_file не нужно вызывать метод send_text или send_binary.