【发布时间】:2013-03-21 15:38:19
【问题描述】:
只有当 websocket-version 为 13 又名 RFC 6455 可用时,我才想将 websockets 与 Jetty-Server(版本 8.1.9)一起使用。如果它不可用,将使用 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
}
如果我使用带有 Safari 5.0.2 的 iPad(它似乎使用较旧的 websocket 协议)连接到 Jetty-Server,我会收到警告: 警告:oejw.WebSocketFactory:不支持的 Websocket 版本:2147483647
我找不到在 Javascript 中获取访问权限或更改握手请求的方法。不可能吗?有什么解决方法吗?
【问题讨论】:
-
如果当前版本是
13,2147483647似乎相当先进 :-)
标签: javascript browser websocket jetty-8