我正在使用Netty 5.0构建套接字Web服务器。我来自WebSocketServer示例(https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/websocketx/server)。 但我无法理解如何从单独的线程向套接字发送事件。所以我有一个线程,每一个都从外部资源加载一些数据。这是StockThread,它接收股票数据。收到数据后,线程应该将事件发送到套接字。这样做的最佳做法是什么?
它使用以下方法:在StockThread里面我存储了ChannelHandlerContext的列表。收到数据后我只调用ChannelHandlerContext的write()方法。因此从StockThread调用write()方法。它没关系还是有更合适的方法呢?
答案 0 :(得分:0)
是, ChannelHandlerContext 线程安全并且可以缓存,因此这种使用方式完全正常。
请参阅" Netty In Action "书,证明了我的话:
You can keep the ChannelHandlerContext for later use,
such as triggering an event outside the handler methods,
even from a different Thread.