2012-02-05 173 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())。