public <T extends WebSocketFrame> void connectWebSocketEndpoint(String pathPrefix, ConnectionHandler<T, T> handler) { WebSocketServer<T, T> backend = RxNetty.newWebSocketServerBuilder(0, handler).build(); backend.start(); backendServers.add(backend); proxy.register(ForwardingRule.pathPrefix(backend.getServerPort(), pathPrefix)); logger.info("Started backend WebSocket server on port {} or {}", backend.getServerPort(), handler.getClass().getSimpleName()); }
@PostConstruct public void start() { server = RxNetty.newWebSocketServerBuilder(config.getWebSocketPort(), new ConnectionHandler<WebSocketFrame, WebSocketFrame>() { @Override public Observable<Void> handle(final ObservableConnection<WebSocketFrame, WebSocketFrame> connection) { return connection.getInput().flatMap(new Func1<WebSocketFrame, Observable<Void>>() { @Override public Observable<Void> call(WebSocketFrame wsFrame) { final SocketAddress socketAddress = connection.getChannel().remoteAddress(); if (wsFrame instanceof TextWebSocketFrame) { TextWebSocketFrame textFrame = (TextWebSocketFrame) wsFrame; logger.info("Got ws-message: " + textFrame.text()); final String cmd = textFrame.text(); if (cmd.equals("get status")) { return streamEurekaStatus(connection); } else { // registry return streamEurekaRegistryData(connection); } } else { return Observable.empty(); } } }); } }).build().start(); logger.info("Starting WebSocket server on port {}...", server.getServerPort()); }
@PostConstruct public void start() { server = RxNetty.newWebSocketServerBuilder(config.getWebSocketPort(), new ConnectionHandler<WebSocketFrame, WebSocketFrame>() { @Override public Observable<Void> handle(final ObservableConnection<WebSocketFrame, WebSocketFrame> connection) { return connection.getInput().flatMap(new Func1<WebSocketFrame, Observable<Void>>() { @Override public Observable<Void> call(WebSocketFrame wsFrame) { if (wsFrame instanceof TextWebSocketFrame) { TextWebSocketFrame textFrame = (TextWebSocketFrame) wsFrame; logger.info("Got ws-message: " + textFrame.text()); final String cmd = textFrame.text(); if (cmd.equals("get status")) { return streamEurekaStatus(connection); } else { // registry return streamEurekaRegistryData(connection); } } else { return Observable.empty(); } } }); } }).build().start(); logger.info("Starting WebSocket server on port {}...", server.getServerPort()); }
@Inject @SuppressWarnings("unchecked") public void setInjector(Injector injector) { KaryonWebSocketsModule.WebSocketsServerConfig config = (KaryonWebSocketsModule.WebSocketsServerConfig) injector.getInstance(serverConfigKey); ConnectionHandler<I, O> connectionHandler = injector.getInstance(connectionHandlerKey); WebSocketServerBuilder<I, O> builder = RxNetty.newWebSocketServerBuilder(config.getPort(), connectionHandler) .withMessageAggregator(config.isMessageAggregator()); if (injector.getExistingBinding(pipelineConfiguratorKey) != null) { builder.appendPipelineConfigurator(injector.getInstance(pipelineConfiguratorKey)); } if (injector.getExistingBinding(metricEventsListenerFactoryKey) != null) { builder.withMetricEventsListenerFactory(injector.getInstance(metricEventsListenerFactoryKey)); } server = builder.build().start(); logger.info("Starting WebSockets server {} on port {}...", nameAnnotation.value(), server.getServerPort()); } }
@Inject @SuppressWarnings("unchecked") public void setInjector(Injector injector) { KaryonWebSocketsModule.WebSocketsServerConfig config = (KaryonWebSocketsModule.WebSocketsServerConfig) injector.getInstance(serverConfigKey); ConnectionHandler<I, O> connectionHandler = injector.getInstance(connectionHandlerKey); WebSocketServerBuilder<I, O> builder = RxNetty.newWebSocketServerBuilder(config.getPort(), connectionHandler) .withMessageAggregator(config.isMessageAggregator()); if (injector.getExistingBinding(pipelineConfiguratorKey) != null) { builder.appendPipelineConfigurator(injector.getInstance(pipelineConfiguratorKey)); } if (injector.getExistingBinding(metricEventsListenerFactoryKey) != null) { builder.withMetricEventsListenerFactory(injector.getInstance(metricEventsListenerFactoryKey)); } server = builder.build().start(); logger.info("Starting WebSockets server {} on port {}...", nameAnnotation.value(), server.getServerPort()); } }
@Inject @SuppressWarnings("unchecked") public void setInjector(Injector injector) { WebSocketsServerConfig config = (WebSocketsServerConfig) injector.getInstance(serverConfigKey); ConnectionHandler<I, O> connectionHandler = injector.getInstance(connectionHandlerKey); WebSocketServerBuilder<I, O> builder = RxNetty.newWebSocketServerBuilder(config.getPort(), connectionHandler) .withMessageAggregator(config.isMessageAggregator()); if (injector.getExistingBinding(pipelineConfiguratorKey) != null) { builder.appendPipelineConfigurator(injector.getInstance(pipelineConfiguratorKey)); } if (injector.getExistingBinding(metricEventsListenerFactoryKey) != null) { builder.withMetricEventsListenerFactory(injector.getInstance(metricEventsListenerFactoryKey)); } server = builder.build().start(); logger.info("Starting WebSockets server {} on port {}...", nameAnnotation.value(), server.getServerPort()); } }