通信框架 smart-socket 1.4.10 發布,bug 修復與示例補充

2020-12-11 開源中國

smart-socket 是一個 AIO 通信框架,可以快速、輕鬆地開發 Client/Server 網絡應用程式。它大大簡化了網絡編程難度和複雜度,可廣泛應用與各類TCP/UDP的通信場景。

    smart-socket 是從許多協議(Http、WebSocket、MQTT、二進位私有協議)的實踐中積累了大量寶貴經驗,從而凝練成了一款極簡、易用、高性能的通信框架。

    極簡

    • 支持各種傳輸類型、協議,且僅圍繞著兩大核心接口(MessageProcessor、Protocol)編程開發。
    • 靈活且可擴展的狀態機設計,可以清晰地分離關注點。
    • 核心包代碼 1500行,編譯後的jar包僅 44kb(如果對此無明顯感觸,可以比較其他同類項目)。

    易用

    • 文檔豐富的 Javadoc 、用戶指南和示例。
    • 沒有額外的依賴,只要求JDK 8及以上版本。
    • 高度可定製化的插件。已內置一些非常實用且開箱即用的插件:SSL/TLS通信、心跳、斷鏈重連、服務指標統計、黑名單、內存池監測

    高性能

    • 更好的吞吐量,更低的延遲
    • 更少的資源消耗
    • 最盡肯能減少不必要的內存拷貝

    更新內容

    1. bugfix:修復服務端線程名顯示不正確的問題。
    2. 優化:客戶端連接失敗後自動釋放資源,無需用戶執行shutdown。感謝smart-socket群友:fanasilver 反饋。
    3. 優化:優化心跳插件設計,引入超時回調機制。關於心跳插件的使用參考:《smart-socket實戰:玩轉心跳消息》
    4. 優化:補充了Push通信示例:《smart-socket實戰:服務端主動Push消息至客戶端》

    Maven

    <dependency> <groupId>org.smartboot.socket</groupId> <artifactId>aio-pro</artifactId> <version>1.4.11</version></dependency>

    性能測試

    相關焦點

    • smart-socket v1.4.4 Bate 版發布,遲到的 UDP 通信
      smart-socket 是一款國產開源的 Java AIO 框架,追求代碼量、性能、穩定性、接口設計各方面都達到極致。
    • smart-socket v1.5.0 發布,應該是目前最快的 AIO 框架
      smart-socket 是一個 AIO 通信框架,可以快速、輕鬆地開發 Client/Server 網絡應用程式。
    • 高性能 TCP & UDP 通信框架 HP-Socket v3.4.3 正式發布
      高性能 TCP & UDP 通信框架 HP-Socket v3.4.3 正式發布了,HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服務端組件、客戶端組件和 Agent 組件,廣泛適用於各種不同應用場景的
    • HP-Socket v4.1.2,高性能 TCP & HTTP 通信框架
      HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服務端組件、客戶端組件和 Agent 組件,廣泛適用於各種不同應用場景的
    • HP-Socket v4.2.1,高性能 TCP & HTTP 通信框架
      HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服務端組件、客戶端組件和 Agent 組件,廣泛適用於各種不同應用場景的 TCP/UDP/HTTP 通信系統,提供 C/C++、C#、Delphi
    • smart-servlet v0.1.0 首發,籌備了 3 年的開源 Servlet 伺服器
      儘管開源時長僅 1 個月,還有著諸多不成熟,但希望未來能成為如同 Tomcat、Undertow 般優秀的項目。為了這個目標,smart-servlet 準備了三年: 3年前,開源 AIO 通信框架 smart-socket。
    • smart-doc 1.9.9 發布,Java 零註解 API 文檔生成工具
      smart-doc完全基於接口源碼分析來生成接口文檔,完全做到零註解侵入,你只需要按照java標準注釋編寫,smart-doc就能幫你生成一個簡易明了的markdown 或是一個像GitBook樣式的靜態html文檔。如果你已經厭倦了swagger等文檔工具的無數註解和強侵入汙染,那請擁抱smart-doc吧!
    • smart-doc 1.9.4 發布,Java 零註解 API 文檔生成工具
      smart-doc完全基於接口源碼分析來生成接口文檔,完全做到零註解侵入,你只需要按照java標準注釋編寫,smart-doc就能幫你生成一個簡易明了的markdown 或是一個像GitBook樣式的靜態html文檔。如果你已經厭倦了swagger等文檔工具的無數註解和強侵入汙染,那請擁抱smart-doc吧!
    • smart-doc 1.8.1 發布,Java 零註解文檔生成工具
      支持生成json返回值示例。 支持從項目外部加載原始碼來生成欄位注釋(包括標準規範發布的jar包)。 支持生成多種格式文檔:Markdown、HTML5、Asciidoctor、Postman collection。 輕易實現在Spring Boot服務上在線查看靜態HTML5 api文檔。
    • smart-doc 1.9.6 發布,Java 零註解 API 文檔生成工具
      smart-doc完全基於接口源碼分析來生成接口文檔,完全做到零註解侵入,你只需要按照java標準注釋編寫,smart-doc就能幫你生成一個簡易明了的markdown 或是一個像GitBook樣式的靜態html文檔。如果你已經厭倦了swagger等文檔工具的無數註解和強侵入汙染,那請擁抱smart-doc吧!
    • 基於Socket的java通信編程詳解
      socket,如果關閉了輸出流,則與該輸出流關聯的socket也會被關閉,所以一般不用關閉流,直接關閉socket即可3、使用TCP通信傳輸對象,IO中序列化部分4、socket編程傳遞文件,IO流部分 關鍵字:Socket 編輯:
    • winform項目——仿QQ即時通訊程序09:socket通信示例程序
      它可以指定通信的ip和埠號,我們只需要在程序中調用即可,不用管它底層如何傳遞的消息。下面,這是一個winform版利用socket進行通訊的例子。首先,我們打開VS2015,新建一個windows窗體項目,叫做服務端程序。然後在窗體上拖兩個按鈕和一個label,如下圖:一個寫啟動服務,一個寫發送消息。 雙擊啟動服務按鈕,進入按鈕的點擊事件。
    • SQLObject 1.3.1 發布,Python的ORM框架 - OSCHINA - 中文開源技術...
      SQLObject 1.3.1 發布,該版本修復了 PostgreSQL 相關的一些小bug:VIEWs don't have PRIMARY KEYs; sqlmeta.idName
    • aio-enhance v1.0.1 發布,Java AIO 內核增強類庫
      aio-enhance(音譯:硬漢) 是一款無侵入式的 Java AIO 內核增強類庫(注意:這不是一款通信框架2.2 修復官方 AIO 架構缺陷Java 原生 AIO 在底層架構設計上存在缺陷(參考:Java AIO通信模型)。多核 CPU 環境下處理高並發請求,會引發比較嚴重的鎖競爭現象,以致無法充分發揮機器性能。普通4核機器競爭壓力不大,AIO 的運行表現實測優於NIO。但隨著 CPU 核數的增加,AIO 的性能優勢逐漸下降。
    • 簡單說說Python Socket編程步驟?
      廢話不多說,開始今天的題目:問:簡單說說Python socket編程步驟?答:Socket是應用層與TCP/IP協議族通信的中間軟體抽象層,它是一組接口。創建TCP伺服器示例:1、創建socket對象2、綁定主機和埠,應當是一個元組3、監聽4、等待連接5、接受數據6、發送數據7、關閉套接字import socket
    • A.CTable 框架 v1.4.0.RELEASE 發布
      A.CTable框架 v1.4.0.RELEASE 已經發布。
    • 基於TCP的網絡實時聊天室(socket通信案例)
      四、聊天室具體設計目前聊天室的功能定位包括:1)查看當前上線用戶;2):群聊;3)私信;4)退出當前聊天狀態;5)離線;6)查看幫助。=1)            sendToMembers(msg,localName,socket);        else if (users.size()==1){            pw.println("當前群聊無其他用戶在線,已自動退出!")
    • Java Socket應用——通信是這樣煉成的
      一、網絡基礎知識1.1、兩臺計算機通過網絡進行通信(1)兩臺主機要有一個唯一的標識(IP位址)。(2)需要有共同的語言(協議)。(3)每臺主機需要有相應的埠號(為了辨別不同應用程式的通信)。1.3、埠號區別不同的應用程式,一個應用有唯一的埠號,範圍為0~65535。其中0~1023被系統保留。http:80、ftp:21、telnet:23。1.4、Java提供網絡功能四大類(1)InetAddress:用語標識網絡上硬體資源。(2)URL:統一資源定位符,直接讀取或寫入網絡上數據。
    • Windows編程技術:Socket通信(上)
      這裡介紹Socket的TCP和UDP通信;一、TCP通信1、函數介紹1.1、socket()函數int socket(int domain, int type, int protocol);socket函數的三個參數分別為: domain:即協議域,又稱為協議族(family)。
    • Python基於Socket實現群聊
      1.1 socket模塊:要創建套接字,必須使用套接字模塊中的socket.socket()函數,該函數具有一般語法s = socket.socket (socket_family, socket_type, protocol = 0)1.2