剛開始使用netty來實現我自己的服務器時,花了我一段時間來掌握它,但現在我可以通過編寫自己的MessageHandler來接受客戶端,並且在messageReceived中我能夠從緩衝區中讀取數據,並且執行了與接收到的數據相關的一些業務邏輯。下游事件如何在jboss的netty中工作?
但現在的問題是,我如何將數據寫入連接的客戶端?我看到的那段代碼,你可以寫信給渠道在這樣一個新的消息的事件:
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
Channel ch = e.getChannel();
ch.write(e.getMessage());
}
,但如果你不希望將數據寫回到該點什麼呢?如果客戶端在套接字中保持連接並等待服務器中發生某些事件,該怎麼辦?在這種情況下,我的服務器將如何找到正確的套接字來寫入?我想保留對頻道對象的引用嗎?這是慣例嗎?
我進一步查看代碼並看到了一個名爲writeRequested的方法。那是相關的嗎?誰會這樣稱呼?它需要嗎?