Я бы хотел использовать websockets с Jetty-Server (версия 8.1.9) только в том случае, если версия websocket aka RFC 6455. Если его не доступно, будет использоваться http-fallback-solution.Как узнать версию протокола websocket в браузере с помощью javascript?
[random Browser Javascript] <--websocket v13 only--> [Jetty Server Java]
WebSocket-протокола версии хранится внутри запроса WebSocket рукопожатия:
GET /mychat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat
Sec-WebSocket-Version: 13
Origin: http://example.com
Теперь я хотел бы иметь что-то подобное в JavaScript:
if (window.WebSocket)
{
// browser supports websockets
if (bla.websocketversion != 13)
{
// wrong websocket version
// use fallback connection
}
else
{
// use websockets
}
}
else
{
// use fallback connection
}
Если я подключитесь к Jetty-Server с помощью iPad с Safari 5.0.2 (который, как правило, использует старый протокол websocket), я получаю предупреждение: WARN: oejw.WebSocketFactory: неподдерживаемая версия WebSocket: 2147483647
Я не мог найти способ, чтобы получить доступ или изменить запрос квитирования в JavaScript. Это невозможно? Какие-нибудь обходные пути для этого?
'2147483647', кажется, весьма прогрессивным, если текущая версия' 13' :-) – Bergi