2012-02-05 174 views
0

我想在Netty中混合TCP和WebSockets。 我有两台服务器,一台使用Websockets,一台使用TCP。 DefaultUserGroup中收集的所有用户以及此原因导致我不知道userGroup中的哪个用户来自WebSockets或TCP,我无法正确写入它们(DefaultUserGroup.write)。Netty WebSockets和TCP套接字

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)); 
+0

你的问题到底是什么? – 2012-02-06 13:32:37

回答

0

如果DefaultUserGroupChannelGroup,为什么不干脆让两个不同的通道组,一个TCP和一个用于WS,并同时写入使用他们各自的框架。

或者,您可以创建它的一些标志标识的通道类型POJO,那么在建立一个新的连接,实例化一个新的POJO,设置的通道类型标志,并贴在通道的attachement(channel.setAttachement(...) )。然后,您可以在写入之前检查通道类型,确保正确格式化框架(channel.getAttachement())。