W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
客戶端初始化參數(shù):
#------------------------------------- # 服務(wù)模塊--客戶端初始化參數(shù) #------------------------------------- # 客戶端配置列表,多個客戶端名稱間用'|'分隔,默認(rèn)為default ymp.configs.serv.client.name_list=default # 服務(wù)名稱, 默認(rèn)為default ymp.configs.serv.client.default.name=default # 遠(yuǎn)程主機(jī)IP地址, 默認(rèn)為0.0.0.0 ymp.configs.serv.client.default.host=0.0.0.0 # 遠(yuǎn)程主機(jī)端口號, 默認(rèn)為8281 ymp.configs.serv.client.default.port=8281 # 編解碼字符集, 默認(rèn)為UTF-8 ymp.configs.serv.client.default.charset=UTF-8 # 緩沖區(qū)大小, 默認(rèn)為4096 ymp.configs.serv.client.default.buffer_size=4096 # 執(zhí)行線程池大小, 默認(rèn)為10 ymp.configs.serv.client.default.executor_count=10 # 連接超時時間(秒), 默認(rèn)為30 ymp.configs.serv.client.default.connection_timeout=30 # 心跳發(fā)送時間間隔(秒), 默認(rèn)為60 ymp.configs.serv.client.default.heartbeat_interval=60 # 自定義參數(shù), 可選 ymp.configs.serv.client.default.params.xxx=xxx
通過在監(jiān)聽器實現(xiàn)類聲明@Client注解來表示一個客戶端,該注解有如下參數(shù):
事件 | 說明 |
---|---|
name | 設(shè)置客戶端名稱,Serv框架將會根據(jù)該參數(shù)指定的名稱加載對應(yīng)的客戶端參數(shù)配置,默認(rèn)為default; |
codec | 設(shè)置編解碼器,默認(rèn)為NioStringCodec; |
implClass | 客戶端實現(xiàn)類,默認(rèn)為NioClient; |
reconnectClass | 短線重連服務(wù)實現(xiàn)類,默認(rèn)為NONE; |
hearbeatClass | 鏈路維護(hù)(心跳)服務(wù)實現(xiàn)類,默認(rèn)為NONE; |
基于TCP協(xié)議的客戶端,需要繼承NioClientListener監(jiān)聽器類,支持監(jiān)聽如下事件:
事件 | 說明 |
---|---|
onSessionConnected | 客戶端成功接入服務(wù)端后觸發(fā)該事件; |
onBeforeSessionClosed | 客戶端會話被關(guān)閉之前觸發(fā)該事件; |
onAfterSessionClosed | 客戶端會話被關(guān)閉之后觸發(fā)該事件; |
onMessageReceived | 收到服務(wù)端發(fā)送的消息時觸發(fā)該事件; |
onExceptionCaught | 出現(xiàn)異常時觸發(fā)該事件; |
基于UDP協(xié)議的客戶端,需要繼承NioUdpListener監(jiān)聽器類,支持監(jiān)聽如下事件:
事件 | 說明 |
---|---|
onSessionReady | 客戶端與服務(wù)端連接已建立并準(zhǔn)備就緒時觸發(fā)該事件; |
onMessageReceived | 收到服務(wù)端發(fā)送的消息時觸發(fā)該事件; |
onExceptionCaught | 出現(xiàn)異常時觸發(fā)該事件; |
@Client(reconnectClass = DefaultReconnectService.class, hearbeatClass = DefaultHeartbeatService.class, codec = TextLineCodec.class) public class TcpClient extends NioClientListener { @Override public void onSessionConnected(INioSession session) throws IOException { super.onSessionConnected(session); // session.send("Hello from client."); } @Override public void onMessageReceived(Object message, INioSession session) throws IOException { super.onMessageReceived(message, session); // System.out.println(session + "--->" + message); } @Override public void onExceptionCaught(Throwable e, INioSession session) throws IOException { System.out.println(session + "--->" + e.getMessage(), e); } }
@Client(implClass = NioUdpClient.class, codec = TextLineCodec.class) public class UdpClient extends NioUdpListener { public Object onSessionReady() throws IOException { return "Hello from client."; } public Object onMessageReceived(InetSocketAddress sourceAddr, Object message) throws IOException { System.out.println(sourceAddr + "--->" + message); return null; } public void onExceptionCaught(InetSocketAddress sourceAddr, Throwable e) throws IOException { System.out.println(sourceAddr + "--->" + e); } }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: