Я использую netty для реализации сервера websocket.Сервер должен работать с некоторыми старыми клиентскими библиотеками websocket (написанными на других языках), которые не соблюдают правило нечувствительности к регистру HTTP-заголовка.Я сталкиваюсь с проблемой там.
Мой конвейер входящего канала довольно стандартный, который выглядит следующим образом.23.Наконец, я вижу, что ответ рукопожатия websocket, отправляемый клиенту, все в именах заголовков в нижнем регистре, как показано ниже.
upgrade: websocket\r\n
connection: upgrade\r\n
sec-websocket-accept: hex-values=\r\n
Но более старый клиент websocket ожидает заголовок в следующем формате.
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Accept: hex-values=\r\n
В результате соединение веб-сокета не завершается.Кто-нибудь сталкивался с этой проблемой?
Строки заголовка приходят из класса HttpHeaderNames вместо класса HttpHeader.Исправление заключается в изменении WebSocketServerHandshaker13.newHandshakeResponse () для использования необходимого HttpHeader.Но это, возможно, потребует изменений в самом коде нетто.Может кто-нибудь предложить какой-нибудь более чистый способ обойти эту проблему без изменения кода netty?
- Есть ли способ добавить / изменить заголовок ответа http при использовании существующих классов рукопожатия netty websocket?
- Должен ли я написать собственный WebSocketServerProtocolHandler для достижения того же самого?
- Любой другой способ?
Цените любой ответ !!!
Большое спасибо заранее.