Take a look at the various proxy options?

I have also implemented a mux with netty in the USaBUSe code here:

https://github.com/sensepost/USaBUSe/tree/master/HIDProxy

Perhaps it will give you some ideas.

Also look
at ./src/main/java/io/netty/example/securechat/SecureChatServerHandler.java,
as it contains an example of distributing messages between a number of
channels.

Rogan


On Tue, Apr 18, 2017 at 10:48 AM u6f6o <[email protected]> wrote:

> Hi,
>
> I am currently working on a little service that listens to a streaming
> service, transforms the messages to some other format, applies some
> business logic and distributes the results among a bunch of connected
> websocket clients.
>
> So far I created two netty Bootstraps, one that listens to the streaming
> service for incoming messages and one that handles the connected websocket
> clients:
>
> public class TickSource {
>
>     private static final byte FS = 28;
>
>     public void run() throws Exception {
>         String host = "localhost";
>         int port = 20077;
>
>         EventLoopGroup workerGroup = new NioEventLoopGroup();
>
>         try {
>             Bootstrap b = new Bootstrap();
>             b.group(workerGroup);
>             b.channel(NioSocketChannel.class);
>             b.option(ChannelOption.SO_KEEPALIVE, true);
>             b.handler(new ChannelInitializer<SocketChannel>() {
>                 @Override
>                 public void initChannel(SocketChannel ch) throws Exception {
>                     ch.pipeline().addLast(new 
> DelimiterBasedFrameDecoder(81920, Unpooled.wrappedBuffer(new byte[]{FS})));
>                     ch.pipeline().addLast(new TickSourceHandler());
>                 }
>             });
>             ChannelFuture f = b.connect(host, port).sync();
>             f.channel().closeFuture().sync();
>         } finally {
>             workerGroup.shutdownGracefully();
>         }
>     }
> }
>
> and
>
> public class TickDistributor {
>
>     public void run() throws Exception {
>         EventLoopGroup bossGroup = new NioEventLoopGroup();
>         EventLoopGroup workerGroup = new NioEventLoopGroup();
>         try {
>             final ServerBootstrap sb = new ServerBootstrap();
>             sb.group(bossGroup, workerGroup)
>                     .channel(NioServerSocketChannel.class)
>                     .childHandler(new ChannelInitializer<SocketChannel>() {
>                         @Override
>                         public void initChannel(final SocketChannel ch) 
> throws Exception {
>                             ch.pipeline().addLast(
>                                     new HttpRequestDecoder(),
>                                     new HttpObjectAggregator(65536),
>                                     new HttpResponseEncoder(),
>                                     new 
> WebSocketServerProtocolHandler("/ticks"),
>                                     new TickDistributorHandler()
>                             );
>                         }
>                     }
>             );
>             Channel ch = sb.bind(8080).sync().channel();
>             ch.closeFuture().sync();
>         } finally {
>             bossGroup.shutdownGracefully();
>             workerGroup.shutdownGracefully();
>         }
>     }
> }
>
>
> So each component on its own works nicely. The problem is, I don't have a
> clue how to connect them both in a nice netty-way. I thought about storing
> the the ServerChannels in the TickSourceHandler and write a message
> received from the streaming service to each of them individually, not sure
> though, if this is achievable in that way or if there is a nicer way to do
> it with netty mechanics.
>
> Reading through *Netty In Action* I also read about LocalChannels and
> bootstrapping new client connections in the same EventLoop if you have a
> 1->1 relation, but I guess it's not suitable in my case with a relation of
> 1->n?
>
> I'd be happy about any hint!
>
> Thx,
> u6f6o
>
> --
> You received this message because you are subscribed to the Google Groups
> "Netty discussions" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/netty/4cad9bbf-52b6-4b0f-8705-d57902453c07%40googlegroups.com
> <https://groups.google.com/d/msgid/netty/4cad9bbf-52b6-4b0f-8705-d57902453c07%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Netty discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/netty/CAOYdKdgY229WueaiqGAOMAVzyWzQrb%3DZ8OJGUrsfAj7mBcJtxQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to