@Override public void onOpen(final ChannelHandlerContext ctx) { super.onOpen(ctx); flushMessages(ctx); }
@Override public void operationComplete(final ChannelFuture future) throws Exception { if (!future.isSuccess()) { final SockJsSession sockJsSession = getSockJsSession(); for (String msg : allMessages) { sockJsSession.addMessage(msg); } } } }).addListener(ChannelFutureListener.CLOSE);
case XHR: addTransportHandler(new XhrPollingTransport(factory.config(), request), ctx); addSessionHandler(new PollingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case JSONP: addTransportHandler(new JsonpPollingTransport(factory.config(), request), ctx); addSessionHandler(new PollingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case XHR_SEND:
case XHR: addTransportHandler(new XhrPollingTransport(factory.config(), request), ctx); addSessionHandler(new PollingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case JSONP: addTransportHandler(new JsonpPollingTransport(factory.config(), request), ctx); addSessionHandler(new PollingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case XHR_SEND:
@Override public ChannelHandlerContext getSendingContext() { final ChannelHandlerContext openContext = getSockJsSession().openContext(); return openContext == null ? getSockJsSession().connectionContext() : openContext; }
@Override public void onOpen(final ChannelHandlerContext ctx) { super.onOpen(ctx); flushMessages(ctx); }
@Override public boolean isInUse() { return getSockJsSession().connectionContext().channel().isActive() || getSockJsSession().inuse(); }
@Override public void operationComplete(final ChannelFuture future) throws Exception { if (!future.isSuccess()) { final SockJsSession sockJsSession = getSockJsSession(); for (String msg : allMessages) { sockJsSession.addMessage(msg); } } } }).addListener(ChannelFutureListener.CLOSE);
@Override public ChannelHandlerContext getSendingContext() { final ChannelHandlerContext openContext = getSockJsSession().openContext(); return openContext == null ? getSockJsSession().connectionContext() : openContext; }
@Override public boolean isInUse() { return getSockJsSession().connectionContext().channel().isActive() || getSockJsSession().inuse(); }
@Override public void onSockJSServerInitiatedClose() { final ChannelHandlerContext context = getSockJsSession().connectionContext(); if (context != null) { //could be null if the request is aborted, for example due to missing callback. if (logger.isDebugEnabled()) { logger.debug("Will close session connectionContext {}", getSockJsSession().connectionContext()); } context.close(); } sessions.remove(getSockJsSession().sessionId()); }
@Override public void onSockJSServerInitiatedClose() { final ChannelHandlerContext context = getSockJsSession().connectionContext(); if (context != null) { //could be null if the request is aborted, for example due to missing callback. if (logger.isDebugEnabled()) { logger.debug("Will close session connectionContext {}", getSockJsSession().connectionContext()); } context.close(); } sessions.remove(getSockJsSession().sessionId()); }
private void flushMessages(final ChannelHandlerContext ctx) { final List<String> allMessages = getSockJsSession().getAllMessages(); if (allMessages.isEmpty()) { return; } final MessageFrame messageFrame = new MessageFrame(allMessages); ctx.channel().writeAndFlush(messageFrame).addListener(new ChannelFutureListener() { @Override public void operationComplete(final ChannelFuture future) throws Exception { if (!future.isSuccess()) { final SockJsSession sockJsSession = getSockJsSession(); for (String msg : allMessages) { sockJsSession.addMessage(msg); } } } }).addListener(ChannelFutureListener.CLOSE); }
private void flushMessages(final ChannelHandlerContext ctx) { final List<String> allMessages = getSockJsSession().getAllMessages(); if (allMessages.isEmpty()) { return; } final MessageFrame messageFrame = new MessageFrame(allMessages); ctx.channel().writeAndFlush(messageFrame).addListener(new ChannelFutureListener() { @Override public void operationComplete(final ChannelFuture future) throws Exception { if (!future.isSuccess()) { final SockJsSession sockJsSession = getSockJsSession(); for (String msg : allMessages) { sockJsSession.addMessage(msg); } } } }).addListener(ChannelFutureListener.CLOSE); }