久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SocketD協議的RPC鑒權模式怎么實現

159次閱讀
沒有評論

共計 1880 個字符,預計需要花費 5 分鐘才能閱讀完成。

這篇文章主要介紹“SocketD 協議的 RPC 鑒權模式怎么實現”,在日常操作中,相信很多人在 SocketD 協議的 RPC 鑒權模式怎么實現問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SocketD 協議的 RPC 鑒權模式怎么實現”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

SocketD 是一種二進制的點對點通信協議,是一種新的網絡通信第七層協議。旨在用于分布式應用程序中。從這個意義上講,SocketD 可以是 RSocket 等其他類似協議的替代方案。它的消息協議規范具有異步,背壓的雙向,多路復用,斷線重連,基于消息等特性。暫時只提供 Java 實現,目前做為 Solon rpc 的 sockte 通道協議。

本案在 RPC 調用模式的基礎上增加簽權為例演示:

接口定義

Rpc 模式借用了 Nami 做客戶端定義(Nami 是 Solon 伴生框架,定位為 Rpc 通用客戶端)

@NamiClient(demo:/demoe/rpc)
public interface HelloService {
 @Handshake
 boolean auth(String sn, String token);
 String hello(String name);
}

服務端

// 啟動服務端
public class ServerApp { public static void main(String[] args) {
 // 啟動 Solon 容器(SocketD bean plugin  由 solon 容器管理) Solon.start(ServerApp.class, args, app -  app.enableSocketD(true))
 .socket(** , (session, message) -  { if (message.flag() != MessageFlag.handshake) { if (session.getHandshaked() == false) {
 System.out.println( 這個客戶端很壞,沒簽權就想發包:( session.close();
 }
 }
 });
 //.socket(..)  可替代  @ServerEndpoint  使用
 }
// 定義遠程服務組件
@Mapping(value =  /demoe/rpc , method = MethodType.SOCKET)
@Component(remoting = true)
public class HelloServiceImpl implements HelloService {
 @Override
 public boolean auth(String sn, String token) { Session session = (Session) Context.current().request();
 if (1 .equals(token)) { session.setHandshaked(true);
 System.out.println( 簽權成功! 
 return true;
 }else{ session.setHandshaked(false);
 return false;
 }
 }
 public String hello(String name) {
 return  name=  + name;
 }
}

客戶端

// 啟動客戶端
public class ClientApp { public static void main(String[] args) throws Throwable {
 // 啟動 Solon 容器(SocketD bean plugin  由 solon 容器管理) Solon.start(ClientApp.class, args);
 //[客戶端]  調用  [服務端]  的  rpc
 //
 HelloService rpc = SocketD.create(tcp://localhost:28080 , HelloService.class);
 if (rpc.auth( 1 ,  1)) { System.out.println( RPC result:   + rpc.hello( noear));
 }
 }
}

到此,關于“SocketD 協議的 RPC 鑒權模式怎么實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計1880字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 牡丹江市| 阿合奇县| 平南县| 泾阳县| 健康| 万安县| 喜德县| 白银市| 庐江县| 聊城市| 贵州省| 全南县| 德令哈市| 班戈县| 普陀区| 玉环县| 永年县| 九龙县| 恭城| 新建县| 孟津县| 临潭县| 文成县| 江油市| 台中县| 肥西县| 淄博市| 贵定县| 宜宾县| 丘北县| 昌吉市| 藁城市| 曲沃县| 响水县| 昌江| 阳西县| 阳朔县| 瓦房店市| 基隆市| 宜春市| 博乐市|