要想輕松駕馭t-io,提高編程效率,學(xué)習(xí)示范工程很重要

t-io作為國內(nèi)知名的開源網(wǎng)絡(luò)編程框架,受到業(yè)界的廣泛贊譽(yù)和使用,要一個想要學(xué)習(xí)或者想要使用t-io的人員,最快的了解t-io的方法就是學(xué)習(xí)t-io相關(guān)的工程文檔,主要包含五個部分:

tio-study工程

tio-websocket-showcase工程

tio-http-server-showcase工程

tio-udp-showcase工程

tio-websocket-client?工程

具體請參考:https://www.wanetech.com/doc/tio/124

分別介紹如下:

tio-study工程簡介

用于學(xué)習(xí)t-io的示范工程,目前包含3個工程:Hello?world、Showcase、IM

下面分別對這三個工程進(jìn)行講解

一、helloworld

helloworld是入門t-io最好的方式!而作者也是用心寫了一個對生產(chǎn)項目有參考價值的hello tio,而不是僅僅是show hello而hello

在以前沒有文檔的日子,t-io第一批用戶就是通過這個工程掌握t-io的

服務(wù)器端入口程序:org.tio.study.helloworld.server.HelloServerStarter

客戶端入口程序:org.tio.study.helloworld.client.HelloClientStarter

本例子演示的是一個典型的TCP長連接應(yīng)用,大體業(yè)務(wù)簡介如下。

分為server和client工程,server和client共用common工程

服務(wù)端和客戶端的消息協(xié)議比較簡單,消息頭為4個字節(jié),用以表示消息體的長度,消息體為一個字符串的byte[]

服務(wù)端先啟動,監(jiān)聽6789端口

客戶端連接到服務(wù)端后,會主動向服務(wù)器發(fā)送一條消息

服務(wù)器收到消息后會回應(yīng)一條消息

之后,框架層會自動從客戶端發(fā)心跳到服務(wù)器,服務(wù)器也會檢測心跳有沒有超時(這些事都是框架做的,業(yè)務(wù)層只需要配一個心跳超時參數(shù)即可)

框架層會在斷鏈后自動重連(這些事都是框架做的,業(yè)務(wù)層只需要配一個重連配置對象即可)

客戶端界面

服務(wù)器端界面

二、showcase

showcase工程用于進(jìn)一步掌握t-io,甚至可以用作你項目的腳手架(@精靈007 同學(xué)已經(jīng)用這個工程完成了3個項目)

這里有一篇博客,可以參考:ShowCase設(shè)計分析

服務(wù)器端入口程序:org.tio.study.showcase.server.ShowcaseServerStarter

客戶端入口程序:org.tio.study.showcase.client.ShowcaseClientStarter

客戶端界面

服務(wù)器端界面

三、IM

im項目在1.7.0版本前一直都開放的,考慮到im的復(fù)雜性,這會給作者帶來一些額外的咨詢工作,所以在后面的版本沒有放出來,現(xiàn)在重新放出來

j-im項目是在本項目的基礎(chǔ)上改造而來的,有興趣的可以看看j-im最早的fork版本

服務(wù)器端入口程序:org.tio.study.im.server.starter.ImServerStarter

客戶端入口程序:org.tio.study.im.client.starter.ImClientStarter

看看爆裂的性能數(shù)據(jù)吧

tio-websocket-showcase工程簡介

引言

tio-websocket-server是基于tio-core實現(xiàn)的websocket服務(wù)器,自帶t-io提供的各項API以及一流的性能和穩(wěn)定性

tio-websocket-showcase工程簡介

用于學(xué)習(xí)tio-websocket-server的示范工程

包括wss和流量監(jiān)控及處理等高級特性

還包括t-io作者寫的一個用于連接websocket服務(wù)器的js小框架——tiows.js(內(nèi)置斷鏈重連、定時主動發(fā)心跳等功能,使用API極其簡單)

效果圖

學(xué)習(xí)步驟

把工程以maven的形式導(dǎo)入到eclipse后

修改\src\main\resources\page\im.js,把127.0.0.1改成你自己的ip地址(如果只是本機(jī)訪問,可以不用修改)

運行org.tio.showcase.Starter

用chrome打開http://127.0.0.1/index.html(說明:本工程不僅會啟動websocket服務(wù)器,還會啟動一個http服務(wù)器用于訪問websocket服務(wù)器)

這是個用iframe嵌入了兩個im.html的頁面,方便在一個窗口查看群聊效果

可以愉快地聊天了

說明

服務(wù)器端,大家看代碼就好,用起來比較簡單

客戶端(js),page/tio/tiows.js是和業(yè)務(wù)無關(guān)的websocket js小框架,主要是實現(xiàn)了重連、定時發(fā)心跳等和業(yè)務(wù)無關(guān)的功能

tio-http-server-showcase工程

引言

tio-http-server是基于tio-core實現(xiàn)的http服務(wù)器,自帶t-io提供的各項API以及一流的性能和穩(wěn)定性

tio-http-server-showcase工程簡介

用于學(xué)習(xí)tio-http-server的示范工程

入口程序

控制器

啟動成功日志

訪問

用瀏覽器打開:http://127.0.0.1

tio-udp-showcase工程

引言

tio-udp是包含在tio-core的一個功能子集

tio-udp-showcase工程簡介

用于學(xué)習(xí)tio-udp-server的示范工程

學(xué)習(xí)步驟

把工程以maven的形式導(dǎo)入到eclipse后

運行org.tio.showcase.udp.server.ShowcaseUdpServerStarter啟動udp服務(wù)器,啟動成功后,日志如下

運行org.tio.showcase.udp.client.UdpClientStarter

觀察服務(wù)器端的console,會看到如下日志

整個工程才3個類,簡單到極致

tio-websocket-client 工程

tio-websocket-client的API風(fēng)格接近瀏覽器端的WebSocket API

1、引用dependence,如maven:

2、創(chuàng)建WebSocket Client:

調(diào)用WsClient.create方法創(chuàng)建WsClient:

additionalHttpHeaders將添加到HTTP握手包的Header中,主要用于添加token等鑒權(quán)行為

例如:

3、調(diào)用client.connect()連接到服務(wù)器

4、像前端一樣使用WebSocket

使用https://www.websocket.org/echo.html的echo服務(wù)的完整示例:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容