當前位置:
首頁 > 最新 > 不僅僅是百萬級即時通訊框架,t-io:讓網路編程更簡單和有趣

不僅僅是百萬級即時通訊框架,t-io:讓網路編程更簡單和有趣

網路編程從大的方面說就是對信息的發送到接收,中間傳輸為物理線路的作用。

網路編程最主要的工作就是在發送端把信息通過規定好的協議進行組裝包,在接收端按照規定好的協議把包進行解析,從而提取出對應的信息,達到通信的目的。中間最主要的就是數據包的組裝,數據包的過濾,數據包的捕獲,數據包的分析,當然最後再做一些處理,代碼、開發工具、資料庫、伺服器架設和網頁設計這5部分你都要接觸。

本文主要跟大家分享一個在開源中國中的開源項目t-io,開源許可協議Apache 2.0,作者:talent-tan。

t-io 誕生的意義

舊時王謝堂前燕,飛入尋常百姓家----當年那些王謝貴族們才擁有的"百萬級即時通訊"應用,將因為t-io的誕生,紛紛飛入普通人家的屋檐下。

t-io 簡介

t-io 是一個網路框架,從這一點來說是有點像 netty 的,但 t-io 的特點在於,它不僅僅是一個網路框架, 因為它為常見和網路相關的業務(如IM、消息推送、RPC、監控)提供了近乎於現成的解決方案,即開箱即用的 API ,簡單列舉如下

一個連接綁定 userid(一個 userid 可以綁定多個連接,用於多端登錄,可雙向查找)

一個連接綁定 token(一個 token 可以綁定多個連接,用於多端登錄,可雙向查找)

一個連接綁定群組(用於推送消息、IM中的群聊)

提供了各種各樣的發送消息 API,這些 API 都位於 Aio.java 中

提供了各種各樣和業務數據綁定的 API ,這些 API 都位於 Aio.java 中

提供了各種各樣查找連接的 API ,這些 API 都位於 Aio.java 中,都是以 get 開頭的

其它各種 API 不一一列舉,可以去看一下 Aio.java

提供了最強級別的監控和統計 API ,應用層只需要調用 API 就能拿到這些監控數據,方便反黑(tio官網當年被黑,在查找兇手的過程中,這些監控API提供了汗馬功勞)

內置心跳檢查功能,省去業務端去編寫定時任務檢查無良連接

內置心跳發送功能

內置斷鏈重邊功能(不要小看這個功能,貌似這這個功能花了作者不少時間,註:不止是單個連接的自動重連,是所有連接的自動重連,在實現這個功能時需要考慮很多因素)

極其震撼的性能,那個每秒發送500萬條聊天消息的測試當年引起了極大爭議,我也就不再描述了,看看用戶的一則測試報告吧: t-io 30W長連接並發壓力測試報告,為了避免各種上爭議,t-io官方以後將不再進行測試數據公布,因為t-io不是一個商業框架,而是開源的!

Api思維導圖:

基於t-io,目前已經有可用的 tio-http-server、tio-websocket-server、tio-im等生態組件,這些組件可以直接享用前面提到的那些API,讓開發人員更靈活地把控每個交互細節。除些之外,tio在開發某些功能中抽象出了如 兩級緩存、定時任務等小工具,方便大家使用,此處不一一列舉。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 面具里的謊話 的精彩文章:

TAG:面具里的謊話 |