java 中 ChannelHandler的用法詳解
10年積累的成都網(wǎng)站建設、做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設流程,更有南陽免費網(wǎng)站建設讓你可以放心的選擇與我們合作。前言:
ChannelHandler處理一個I/O event或者攔截一個I/O操作,在它的ChannelPipeline中將其遞交給相鄰的下一個handler。
通過繼承ChannelHandlerAdapter來代替
因為這個接口有許多的方法需要實現(xiàn),你或許希望通過繼承ChannelHandlerAdapter來代替。
context對象
一個ChannelHandler和一個ChannelHandlerContext對象一起被提供。一個ChannelHander通過一個context對象和其所屬的那個ChannelPipeline進行交互。使用context對象,ChannelHandler可以向上或者向下傳遞events,動態(tài)地修改pipeline,或者存儲與handler相關的信息(使用AttributeKeys)。
狀態(tài)管理
一個ChannelHandler經(jīng)常需要存儲一些狀態(tài)相關的信息。最簡單和推薦的方法是使用成員變量:
public interface Message { // your methods here } public class DataServerHandler extends SimpleChannelInboundHandler<Message> { private boolean loggedIn; @Override protected void messageReceived(ChannelHandlerContext ctx, Message message) { Channel ch = e.getChannel(); if (message instanceof LoginMessage) { authenticate((LoginMessage) message); loggedIn = true; } else (message instanceof GetDataMessage) { if (loggedIn) { ch.write(fetchSecret((GetDataMessage) message)); } else { fail(); } } } ... }
分享名稱:java中ChannelHandler的用法詳解-創(chuàng)新互聯(lián)
文章鏈接:http://www.rwnh.cn/article32/esipc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、關鍵詞優(yōu)化、網(wǎng)站導航、建站公司、網(wǎng)站建設、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容