websocket-version が13 aka RFC 6455が利用可能な場合にのみ、Jetty-Server (バージョン 8.1.9) で websocket を使用したいと思います。利用できない場合は、http-fallback-solution が使用されます。
[random Browser Javascript] <--websocket v13 only--> [Jetty Server Java]
websocket-protocol-version は、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
}
iPad と Safari 5.0.2 (古い Websocket プロトコルを使用しているようです) を使用して Jetty-Server に接続すると、次の警告が表示されます: WARN:oejw.WebSocketFactory:Unsupported Websocket version: 2147483647
アクセスを取得したり、Javascript でハンドシェイク要求を変更したりする方法が見つかりませんでした。無理ですか?これに対する回避策はありますか?