介紹
Simple Network Framework for Java (SNF4J) 是一個非同步事件驅動的網頁應用程式框架,用於快速輕鬆地開發網頁應用程式。
SNF4J 作為一個簡單、輕量級且獨立的網頁應用程式框架,有助於開發高效能和可擴展的網路應用程式。它透過 Java NIO 提供非同步 API 來處理各種傳輸,例如 TCP/IP、UDP/IP 和 SCTP/IP。
該框架被設計為使用簡單且易於理解。喜歡密切關注實際情況的應用程式開發人員不會被原始程式碼的語氣所淹沒。它旨在提供核心網路功能,以簡單但有效的方式在兩個或多個通訊網路應用程式之間傳輸資料。為了確保傳輸資料的隱私性和完整性,它提供了對 SSL/TLS/DTLS 協定的支援。
設計
- 傳輸層類型的統一 API:TCP、UDP 和 SCTP
- 用於開發非同步網路應用程式的事件驅動 API
- 適用於傳輸層類型的可自訂協定引擎:TCP 和 UDP
- 用於開發 UDP 伺服器應用程式的實用程序
- 用於可自訂編碼器-解碼器管道的簡單 API
- 以單線程方式輕鬆編寫多線程應用程序
- 建構共享同一套接字通道的會話管道
性能和可擴展性
- 支援最小化甚至零不必要的記憶體複製
- 支援多會話應用程式中的低記憶體利用率
- 更低的延遲
- zlib 和 gzip 壓縮
- 可自訂的選擇器循環池
- 可自訂的位元組緩衝區分配器
線程模型
- 所有處理程序的事件(即讀取、事件、計時器、異常、事件)均從為通道執行 I/O 的執行緒(I/O 執行緒)觸發
- 所有會話的方法都是線程安全的,可以從任何線程調用,包括 I/O 線程和非 I/O 線程
- 作為呼叫會話方法的副作用而觸發的任何處理程序事件都是從 I/O 執行緒觸發的
- Codec的程式碼總是在I/O線程中處理
- 引擎的程式碼總是在I/O線程中處理
支援的協議
- HTTP Web 代理程式連線協定
- SOCKS 協議
- WebSocket協議
- TLS 1.3 協定工具包(解析器/格式化程式、握手引擎、記錄層實用程式和完整的 TLS 引擎)
安全
- 完整支援 SSL/TLS/DTLS 協議
- 安全 Web 代理連接
一體化
- 沒有額外的依賴項,JDK 8 或 JDK 9(對於 DTLS)就足夠了
- 完全可自訂的日誌記錄(SLF4J、Log4j 2 已經在這裡)
- 可定制的線程工廠
- 可自訂的會話計時器
- DTLS 握手期間可自訂的資料包重傳模型
編譯
您需要 Apache maven 3.8 或更高版本,Java 8 或更高版本
連結