Skip to content

WebSocket-ответы

Формирование и отправка ответов через WebSocket-соединение. Поддерживаются текстовые и бинарные данные.

Отправка ответа

Содержимое ответа не отправляется пользователю до вызова методов text, binary или file. Чтобы отправить ответ небходимо вызвать в конце обработчика один из этих методов, иначе клиент никогда не дождется ответа.

Протокол Websockets позволяет передавать и принимать данные в текстовом и бинарном форматах.

Прием и передача данных всегда должны быть в одном формате.

Текстовый формат

c
void get(wsctx_t* ctx) {
    ctx->response->send_text(ctx->response, "{\"message\": \"This is json\"}");
}

Бинарный формат

c
void get(wsctx_t* ctx) {
    ctx->response->send_binary(ctx->response, "Text in binary format");
}

Общий формат
Метод send_data автоматически определяет формат входящего запроса и формирует ответ в аналогичном формате.

c
void get(wsctx_t* ctx) {
    ctx->response->send_data(ctx, "Text in binary format");
}

Отправка файлов

Фреймворк предоставляет метод send_file для решения задач по отправке файлов по протоколу WebSockets. Файл отправляется клиенту в бинарном формате.

c
void get(wsctx_t* ctx) {
    ctx->response->send_file(ctx->response, "/path/image.jpg");
}

Чтобы быть уверенным, что к ответу не будет добавлено никакое нежелательное содержимое, при вызове метода send_file не нужно вызывать метод send_text или send_binary.

Выпущено под лицензией MIT.