Browse Source

WebSocket frames handling fixed. #195

master
Nikita 10 years ago
parent
commit
3a2b92641a
  1. 2
      src/main/java/com/corundumstudio/socketio/SocketIOChannelInitializer.java
  2. 5
      src/main/java/com/corundumstudio/socketio/transport/WebSocketTransport.java

2
src/main/java/com/corundumstudio/socketio/SocketIOChannelInitializer.java

@ -22,6 +22,7 @@ import io.netty.channel.ChannelPipeline;
import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.HttpObjectAggregator;
import io.netty.handler.codec.http.HttpRequestDecoder; import io.netty.handler.codec.http.HttpRequestDecoder;
import io.netty.handler.codec.http.HttpResponseEncoder; import io.netty.handler.codec.http.HttpResponseEncoder;
import io.netty.handler.codec.http.websocketx.WebSocketFrameAggregator;
import io.netty.handler.ssl.SslHandler; import io.netty.handler.ssl.SslHandler;
import java.security.KeyStore; import java.security.KeyStore;
@ -59,6 +60,7 @@ public class SocketIOChannelInitializer extends ChannelInitializer<Channel> impl
public static final String SOCKETIO_ENCODER = "socketioEncoder"; public static final String SOCKETIO_ENCODER = "socketioEncoder";
public static final String WEB_SOCKET_TRANSPORT = "webSocketTransport"; public static final String WEB_SOCKET_TRANSPORT = "webSocketTransport";
public static final String WEB_SOCKET_AGGREGATOR = "webSocketAggregator";
public static final String XHR_POLLING_TRANSPORT = "xhrPollingTransport"; public static final String XHR_POLLING_TRANSPORT = "xhrPollingTransport";
public static final String AUTHORIZE_HANDLER = "authorizeHandler"; public static final String AUTHORIZE_HANDLER = "authorizeHandler";
public static final String PACKET_HANDLER = "packetHandler"; public static final String PACKET_HANDLER = "packetHandler";

5
src/main/java/com/corundumstudio/socketio/transport/WebSocketTransport.java

@ -29,6 +29,7 @@ import io.netty.handler.codec.http.QueryStringDecoder;
import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame;
import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
import io.netty.handler.codec.http.websocketx.WebSocketFrameAggregator;
import io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker; import io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
import io.netty.handler.codec.http.websocketx.WebSocketServerHandshakerFactory; import io.netty.handler.codec.http.websocketx.WebSocketServerHandshakerFactory;
import io.netty.util.ReferenceCountUtil; import io.netty.util.ReferenceCountUtil;
@ -41,6 +42,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.corundumstudio.socketio.Configuration; import com.corundumstudio.socketio.Configuration;
import com.corundumstudio.socketio.SocketIOChannelInitializer;
import com.corundumstudio.socketio.Transport; import com.corundumstudio.socketio.Transport;
import com.corundumstudio.socketio.handler.AuthorizeHandler; import com.corundumstudio.socketio.handler.AuthorizeHandler;
import com.corundumstudio.socketio.handler.ClientHead; import com.corundumstudio.socketio.handler.ClientHead;
@ -159,6 +161,9 @@ public class WebSocketTransport extends ChannelInboundHandlerAdapter {
log.error("Can't handshake " + sessionId, future.cause()); log.error("Can't handshake " + sessionId, future.cause());
return; return;
} }
channel.pipeline().addBefore(SocketIOChannelInitializer.WEB_SOCKET_TRANSPORT, SocketIOChannelInitializer.WEB_SOCKET_AGGREGATOR,
new WebSocketFrameAggregator(configuration.getMaxFramePayloadLength()));
connectClient(channel, sessionId); connectClient(channel, sessionId);
} }
}); });

Loading…
Cancel
Save