Я читаю HTTP -запрос из сети, который я хочу использовать в рукопожатии с удаленным сервером WebSocket. WebSocket :: Stream :: Async_handshake API не предоставляет способ указать запрос, который должен быть отправлен как часть рукопожатия. Когда я использую декоратор, чтобы изменить заголовки запросов Beast , я получаю ошибку в рукопожатии: «Поле Handsocket Dishake Sec-WebsocketCocket-accep Заголовок, который я прошел через декоратор. < /p>
Как я могу решить эту проблему? Вот часть кода, где выполняется async_handshake (пожалуйста, обратите внимание на комментарии):
// request variable points to http request which should be used in websocket handshake
// this request upgrades HTTP to WebSocket
ws_.set_option(boost::beast::websocket::stream_base::decorator(
[request](boost::beast::websocket::request_type& req)
{
// copy all headers from received request to handshake request (including Sec-WebSocket-Key)
for (auto& field : *request)
{
req.set(field.name(), field.value());
}
}));
ws_.async_handshake((*request)["Host"], request->target(),
[this, request](boost::beast::error_code ec)
{
// here is error (i think because Sec-WebSocket-Key is wrong)
if (ec)
{
std::cout
Подробнее здесь: https://stackoverflow.com/questions/796 ... om-request
Websocket :: Stream :: async_handshake с пользовательским запросом ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1749707118
Anonymous
Я читаю HTTP -запрос из сети, который я хочу использовать в рукопожатии с удаленным сервером WebSocket. WebSocket :: Stream :: Async_handshake API не предоставляет способ указать запрос, который должен быть отправлен как часть рукопожатия. Когда я использую декоратор, чтобы изменить заголовки запросов Beast , я получаю ошибку в рукопожатии: «Поле Handsocket Dishake Sec-WebsocketCocket-accep Заголовок, который я прошел через декоратор. < /p>
Как я могу решить эту проблему? Вот часть кода, где выполняется async_handshake (пожалуйста, обратите внимание на комментарии):
// request variable points to http request which should be used in websocket handshake
// this request upgrades HTTP to WebSocket
ws_.set_option(boost::beast::websocket::stream_base::decorator(
[request](boost::beast::websocket::request_type& req)
{
// copy all headers from received request to handshake request (including Sec-WebSocket-Key)
for (auto& field : *request)
{
req.set(field.name(), field.value());
}
}));
ws_.async_handshake((*request)["Host"], request->target(),
[this, request](boost::beast::error_code ec)
{
// here is error (i think because Sec-WebSocket-Key is wrong)
if (ec)
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79662161/websocketstreamasync-handshake-with-custom-request[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия