<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Voovan高性能異步網(wǎng)絡(luò)框架和 WEB 服務(wù)器框架

          聯(lián)合創(chuàng)作 · 2023-09-28 15:23

          Voovan 是一個高性能異步網(wǎng)絡(luò)框架和 HTTP 服務(wù)器框架,同時支持 HTTP 客戶端抓取、動態(tài)編譯支持、數(shù)據(jù)庫訪問封裝以及 DateTime、String、Log、反射、對象工具、流操作、文件操作、異步雙向通道等功能。旨在提供可靠、方便、可單元測試的代碼。它是一個無任何依賴的獨(dú)立工具包,希望能夠方便廣大開發(fā)者快速的實(shí)現(xiàn)應(yīng)用。

          Maven 中央庫支持:

          <dependency>
              <groupId>org.voovan</groupId>
              <artifactId>voovan-framework</artifactId>
              <version>0.9.8</version>
          </dependency>

          框架特點(diǎn)介紹:

          • 使用 JDK8 的 lambda 表達(dá)式,快速實(shí)現(xiàn) HTTP/WebSocket 服務(wù)的開發(fā)。

          • 極簡單的 HTTPClient 無任何依賴模擬瀏覽器抓取頁面。

          • 異步通信框架解決粘包問題。

          異步通信框架特性:

          類似 Netty 和 MINA 的異步 Socket 通信框架。但有有所不同。

          1. 可簡單解決Socket通信粘包的問題(代碼中包含 HTTP協(xié)議、字符串換行、定長報文的粘包實(shí)現(xiàn))。

          2. 支持 SSL/TLS 加密通信

          3. 提供線程池依據(jù)系統(tǒng)負(fù)載情況自動動態(tài)調(diào)整。

          4. 同時支持 NIO 和 AIO 特性。

          WEB 服務(wù)器特性:

          1. 支持 WebSocket Version 13,并且保持 WebSocket 請求參數(shù)。

          2. RESTFUL、使用 Lambda 更加方便的 WEB 服務(wù)實(shí)現(xiàn)。

          3. 支持路徑變量自動抽取 當(dāng)路徑定義/:name,在使用/jonh地址訪問時,可以通過 name 參數(shù)獲取 jonh 字符串。

          -> 教程入口

          HTTP 服務(wù)代碼舉例(Demo入口):

          //構(gòu)造 HttpServer 對象,使用配置文件的配置構(gòu)造一個 HTTPServer,也可以使用默認(rèn)構(gòu)造函數(shù)構(gòu)造.
          HttpServer httpServer = HttpServer.newInstance();
          
          
          //普通 GET 請求樣例
          httpServer.get("/", (req, resp) -> {
               resp.write("我是測試小消息");
          });
          
          
          //帶路徑參數(shù)的 GET 請求樣例
          httpServer.get("/:name/:age", (req, resp) -> {
               //req.getParameter("name") 獲取請求路徑中的name參數(shù)
               //req.getParameter("age") 獲取請求路徑中的age參數(shù)
               resp.write("我是測試小消息");
          });
          
          //WebSocket請求樣例
          httpServer.socket("/websocket", new WebSocketBizHandler() {
          
              @Override
              public ByteBuffer onRecived(HttpRequest upgradeRequest, ByteBuffer message) {
              
                  String msg = new String(message.array());  //收到的消息
          
                  return ByteBuffer.wrap(msg.getBytes());    //返回的消息
              }
          
              @Override
              public void onOpen(HttpRequest upgradeRequest) {
                  Logger.info("WebSocket connect!");
              }
          
              @Override
              public void onClose() {
                  Logger.info("WebSocket close!");
              }
          });
          
          //HttpServer服務(wù)啟動
          httpServer.Serve();
          瀏覽 20
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人AV在线导航 | 成人黄色免费在线视频 | 欧美69视频 | 国产一级免费视频 | 大香蕉 欧美 |