@Override public void onOpen(final ChannelHandlerContext ctx) { super.onOpen(ctx); flushMessages(); }
@Override public void operationComplete(final ChannelFuture future) throws Exception { if (!future.isSuccess()) { final SockJsSession sockJsSession = getSockJsSession(); for (String msg : allMessages) { sockJsSession.addMessage(msg); } } } });
case XHR_STREAMING: addTransportHandler(new XhrStreamingTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case EVENTSOURCE: addTransportHandler(new EventSourceTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case HTMLFILE: addTransportHandler(new HtmlFileTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case JSONP_SEND:
case XHR_STREAMING: addTransportHandler(new XhrStreamingTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case EVENTSOURCE: addTransportHandler(new EventSourceTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case HTMLFILE: addTransportHandler(new HtmlFileTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case JSONP_SEND:
@Override public void operationComplete(final ChannelFuture future) throws Exception { if (!future.isSuccess()) { final SockJsSession sockJsSession = getSockJsSession(); for (String msg : allMessages) { sockJsSession.addMessage(msg); } } } });
@Override public void onOpen(final ChannelHandlerContext ctx) { super.onOpen(ctx); flushMessages(); }
@Override public boolean isInUse() { return getSockJsSession().connectionContext().channel().isActive(); }
@Override public ChannelHandlerContext getSendingContext() { return getSockJsSession().connectionContext(); }
@Override public boolean isInUse() { return getSockJsSession().connectionContext().channel().isActive(); }
@Override public ChannelHandlerContext getSendingContext() { return getSockJsSession().connectionContext(); }
@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. logger.debug("Will close session connectionContext " + getSockJsSession().connectionContext()); context.close(); } }
@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. logger.debug("Will close session connectionContext " + getSockJsSession().connectionContext()); context.close(); } }
private void flushMessages() { final Channel channel = getSockJsSession().connectionContext().channel(); if (channel.isActive() && channel.isRegistered()) { final List<String> allMessages = getSockJsSession().getAllMessages(); if (allMessages.isEmpty()) { return; } final MessageFrame messageFrame = new MessageFrame(allMessages); logger.debug("flushing [{}]", messageFrame); 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); } } } }); } }
private void flushMessages() { final Channel channel = getSockJsSession().connectionContext().channel(); if (channel.isActive() && channel.isRegistered()) { final List<String> allMessages = getSockJsSession().getAllMessages(); if (allMessages.isEmpty()) { return; } final MessageFrame messageFrame = new MessageFrame(allMessages); logger.debug("flushing [{}]", messageFrame); 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); } } } }); } }