Voovan高性能異步網(wǎng)絡(luò)框架和 WEB 服務(wù)器框架
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 通信框架。但有有所不同。
-
可簡單解決Socket通信粘包的問題(代碼中包含 HTTP協(xié)議、字符串換行、定長報文的粘包實(shí)現(xiàn))。
-
支持 SSL/TLS 加密通信。
-
提供線程池依據(jù)系統(tǒng)負(fù)載情況自動動態(tài)調(diào)整。
-
同時支持 NIO 和 AIO 特性。
WEB 服務(wù)器特性:
-
支持 WebSocket Version 13,并且保持 WebSocket 請求參數(shù)。
-
RESTFUL、使用 Lambda 更加方便的 WEB 服務(wù)實(shí)現(xiàn)。
-
支持路徑變量自動抽取 當(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();