웹 소켓이있는 Netty 3.3 서버 https://github.com/netty/netty/tree/3.2/src/main/java/org/jboss/netty/example/http/websocketx/serverNetty 3.3에서 WebSocket (RFC 6455)을 구성하는 방법은 무엇입니까?
RFC 6455를 구현하는 클라이언트가 있는데 서버가 기본적으로 메시지를 디코딩 할 수 없습니다. 디버깅하는 동안 WebSocket08FrameDecoder (대신 WebSocket13FrameDecoder)가 사용되는 것을 볼 수 있습니다. 클라이언트를 draft00으로 다운 그레이드하면 모든 것이 잘 동작합니다. RFC 6455 메시지를 디코딩하도록 Netty를 어떻게 구성합니까?
갱신하는
고객이 핸드 셰이크 패키지 보내
GET /websocket HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: 5a087
Host: 127.0.0.1
Origin: 127.0.0.1
그리고 서버에 지나치게 붙임성이있는 사람은 WebSocketServerHandshaker13
,하지만 난 여전히 오류 얻을 :
org.jboss.netty.handler.codec.frame.CorruptedFrameException: unmasked client to server frame
at org.jboss.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation(WebSocket08FrameDecoder.java:350)
at org.jboss.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.decode(WebSocket08FrameDecoder.java:138)
at org.jboss.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.decode(WebSocket08FrameDecoder.java:56)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:465)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:438)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:343)
at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:274)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:194)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)`
고객 핸드 쉐이크 패키지 및 디버그 로그를 – Quiz
에 추가합니다. 클라이언트 마스킹에 문제가 있어야합니다. 당신의 응답을 주셔서 감사합니다. – Quiz