Netty WebSockets& tcp套接字

时间:2012-02-05 09:47:41

标签: sockets tcp websocket netty

我正在尝试在Netty中混合使用TCP和WebSockets。 我有两台服务器,一台带有Websockets,另一台带有TCP。在DefaultUserGroup中收集的所有用户及其原因我不知道userGroup中的哪个用户来自WebSockets或TCP我无法正确写入它们(DefaultUserGroup.write)。

Websocket服务器:

    ChannelPipeline pipeline = pipeline();
    pipeline.addLast("decoder", new HttpRequestDecoder());
    pipeline.addLast("aggregator", new HttpChunkAggregator(65536));
    pipeline.addLast("encoder", new HttpResponseEncoder());
    pipeline.addLast("handler", new WebSocketServerHandler(readQueueHandler));

TCP服务器:

         pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192, Delimiters.lineDelimiter()));
         pipeline.addLast("decoder", new StringDecoder());
         pipeline.addLast("encoder", new StringEncoder());
         pipeline.addLast("handler", new MyBusinessLogicHandler(readQueueHandler));

1 个答案:

答案 0 :(得分:0)

如果DefaultUserGroupChannelGroup,为什么不只是制作两个不同的ChannelGroup,一个用于TCP,一个用于WS,并使用各自的帧写入两者。

或者,您可以创建一个POJO,其上标有一些标识通道类型的标志,然后在建立新连接时,实例化一个新的POJO,设置通道类型标志,并将其粘贴在通道的附件上({{ 1}})。然后您可以在写入之前检查频道类型,以确保正确格式化帧(channel.setAttachement(...))。