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