final LocalContext localContext = LocalContext.get(session);
if (localContext.hasAttribute(SESSION_ATTR_WS_STATUS) &&
WEBSOCKET_ACTIVE.equals(localContext.getAttribute(String.class, SESSION_ATTR_WS_STATUS))) {
final MessageQueue queueBySession = svc.getBus().getQueueBySession(sessionKey);
queueBySession.setDeliveryHandler(DirectDeliveryHandler.createFor(new NettyQueueChannel(ctx.getChannel())));
// open the channel
activeChannels.put(ctx.getChannel(), session);
ctx.getChannel().getCloseFuture().addListener(new ChannelFutureListener() {
@Override
public void operationComplete(final ChannelFuture channelFuture) throws Exception {
activeChannels.remove(ctx.getChannel());
queueBySession.setDeliveryHandlerToDefault();
}
});
// set the session queue into direct channel mode.