【发布时间】:2015-01-13 15:01:40
【问题描述】:
我在连接到 spring websocket 实现时遇到问题。
调试代码后,我发现请求标头'Connection'有两个值,来自我的简单javascript代码的'keep-alive'和'Upgrade'。
请求的提琴手输出是:-
GET http://localhost:8282/play/stream HTTP/1.1
Host: localhost:8282
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Authorization: Basic bXNhZG1pbjptc2FkbWlu
Upgrade: websocket
Connection: Upgrade
Origin: http://localhost:8282
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: JSESSIONID=8C8748DD08104EAD51296E4A9E846604
Sec-WebSocket-Key: 9edBIn/q4i5pyQOFf72SMA==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
...DefaultHandshakeHandler 调用 HttpHeaders.getConnection(),它返回 FIRST 值为“keep-alive”。这与“升级”和“升级”相比,失败了。
这里有什么问题?这种情况下是否允许keep-alive header,如果允许,逻辑不正确吗?
我正在使用 spring-websockets/spring-web 4.0.8.RELEASE
干杯
【问题讨论】:
标签: spring websocket keep-alive bad-request