WsnTransport(Properties configuration) { acceptor = new WsnAcceptor(); acceptor.setConfiguration(configuration); connector = new WsnConnector(); connector.setConfiguration(configuration); }
@Override public void removeBridgeFilters(IoFilterChain filterChain) { removeFilter(filterChain, postUpgrade); removeFilter(filterChain, codec); removeFilter(filterChain, base64); removeFilter(filterChain, text); removeFilter(filterChain, WsAcceptor.CLOSE_FILTER); }
protected <T extends ConnectFuture> ConnectFuture wsnConnectInternal(ResourceAddress connectAddress, IoHandler handler, final IoSessionInitializer<T> initializer // TODO: connect options context?? ) { final DefaultConnectFuture wsnConnectFuture = new DefaultConnectFuture(); // propagate connection failure, if necessary IoFutureListener<ConnectFuture> parentConnectListener = new IoFutureListener<ConnectFuture>() { @Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if ( !future.isConnected() ) { wsnConnectFuture.setException(future.getException()); } } }; IoSessionInitializer<ConnectFuture> parentInitializer = createParentInitializer(connectAddress, handler, initializer, wsnConnectFuture); final ResourceAddress createAddress = connectAddress.getTransport(); BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(createAddress); connector.connect(createAddress, selectConnectHandler(createAddress), parentInitializer).addListener(parentConnectListener); return wsnConnectFuture; }
@Override protected void doSessionOpened(IoSessionEx session) throws Exception { IoFilterChain filterChain = session.getFilterChain(); addBridgeFilters(filterChain); // defer creation of WsnSession until WebSocket handshake completed Callable<WsnSession> sessionFactory = WSN_SESSION_FACTORY_KEY.remove(session); WsnSession wsnSession = sessionFactory.call(); SESSION_KEY.set(session, wsnSession); }
final ConnectFuture wsnConnectFuture = wsnConnectInternal(connectAddress, handler, initializer);