成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

不發(fā)不行!Netty集成文字圖片聊天室外加TCP/IP軟硬件通信

siberiawolf / 1293人閱讀

摘要:前言熬了一晚上硬是磨出來(lái)了,更新到了上,善存一些小,不過(guò)這個(gè)版本的整體功能算是實(shí)現(xiàn)了。預(yù)留其余的就是可能善存的一些了圖片過(guò)大,需要在前端做圖片上傳壓縮前端代碼的一點(diǎn)問(wèn)題,不影響項(xiàng)目正常運(yùn)行遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。

前言

熬了一晚上硬是磨出來(lái)了,更新到了GitHub上,善存一些小BUG,不過(guò)這個(gè)版本的整體功能算是實(shí)現(xiàn)了。

項(xiàng)目:UncleCatMySelf/InChat

地址:https://github.com/UncleCatMy...

雙端口,TCP/IP軟硬件通信、Web端通信聊天應(yīng)用

文字、圖片聊天

流程圖

磨了兩天的Netty,因項(xiàng)目需要所以在整改一些東西,具體就不細(xì)說(shuō)了,剛剛好和這個(gè)項(xiàng)目相似就拿來(lái)練練手·······

先看看流程圖(我啥時(shí)候能畫(huà)出好一點(diǎn)的架構(gòu)圖呢?)

詳解

先說(shuō)TCP/IP軟硬件通信吧,這個(gè)相對(duì)容易理解,也是圖的右側(cè),加一個(gè)Handler去獲取數(shù)據(jù),硬件和服務(wù)器有對(duì)應(yīng)的協(xié)議,我這邊的協(xié)議是幀頭+ID+控制類型+數(shù)據(jù)+加密+幀尾,得到正確數(shù)據(jù)既連接為正常的,那就保持正常通信,否則一律殺死連接??刂祁愋臀覍?xiě)得比較粗糙,用switch,中間可能有數(shù)據(jù)的CRUD操作等,使用ScheduledFuture起一個(gè)新線程去執(zhí)行原生的JDBC,后面可以改為異步執(zhí)行(如果不需要實(shí)時(shí)的話,那就可以用JPA注入了。)

接著是聊天應(yīng)用的通信,還是一個(gè)自定義的Handler不過(guò)是Object,具體后面可以使用instanceof去做判斷,對(duì)于TextWebSocket類型的就做普通的文字聊天處理,而WebSocketFrame且同時(shí)也是BinaryWebSocketFrame的就做圖片處理,你可以直接返回給客戶端,也可以保存到本地,如果返回客戶端的話,對(duì)于ByteBuf而言需要加一個(gè)retain()方法,不然會(huì)報(bào)錯(cuò)的。

預(yù)留BUG

其余的就是可能善存的一些BUG了

io.netty.handler.codec.CorruptedFrameException: Max frame length of 65536 has been exceeded.
圖片過(guò)大,需要在前端做圖片上傳壓縮

Uncaught TypeError: msg.substring is not a function at WebSocket.socket.onmessage (newChat.js:38)
前端代碼的一點(diǎn)問(wèn)題,不影響項(xiàng)目正常運(yùn)行

java.io.IOException: 遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。
TCP客戶端連接主動(dòng)關(guān)閉,不影響,良性報(bào)錯(cuò)
效果

效果在上面的視頻看到了?。?!(請(qǐng)移步公眾號(hào),這里給圖片)

還不去Star 然后自己泡一下?

地址:https://github.com/UncleCatMy...

項(xiàng)目名:UncleCatMySelf/InChat

如果本文對(duì)你有所幫助,歡迎關(guān)注本人技術(shù)公眾號(hào),謝謝。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77211.html

相關(guān)文章

  • 如何做一個(gè)自己的開(kāi)源聊天項(xiàng)目?(仿微信)

    摘要:一個(gè)輕量級(jí)高效率的支持聊天與物聯(lián)網(wǎng)的通訊框架從月初到現(xiàn)在已經(jīng)大約已經(jīng)三個(gè)月了,由于一直沒(méi)有時(shí)間與精力很好的維護(hù)這個(gè)項(xiàng)目,心里一直有所歉意。希望本項(xiàng)目對(duì)你有所幫助,我的目標(biāo)暫定,一個(gè)小眾加物聯(lián)網(wǎng)的開(kāi)源通訊項(xiàng)目。 篇幅較長(zhǎng),感謝閱讀。 萬(wàn)事開(kāi)頭難 在我決定做開(kāi)源是因?yàn)樽陨砉ぷ鹘佑|到大多數(shù)的項(xiàng)目都是基于開(kāi)源大佬寫(xiě)的框架,自覺(jué)慚愧,工作以來(lái)一直忙于業(yè)務(wù)與功能實(shí)現(xiàn),多多少少做過(guò)的幾個(gè)項(xiàng)目也沒(méi)能抽...

    Zachary 評(píng)論0 收藏0
  • 支持成千上萬(wàn)的并發(fā)客戶端的系統(tǒng)底層框架

    摘要:而也因此引出了各種開(kāi)源的大框架,它們各有優(yōu)缺點(diǎn),其中大多數(shù)與分布式系統(tǒng)相關(guān)聯(lián)。而在網(wǎng)絡(luò)編程領(lǐng)域,或許才是真正的一枝獨(dú)秀它掌控著高級(jí)的能力,并將其隱藏在一個(gè)易于使用的之后。 Netty?。。?寫(xiě)過(guò)一段時(shí)間的代碼后,大多數(shù)人都會(huì)學(xué)到:直接使用底層的APi暴露了復(fù)雜性,并且引入了對(duì)往往供不應(yīng)求的技能的關(guān)鍵性依賴,當(dāng)然,學(xué)過(guò)Java的朋友或者其他語(yǔ)言也知道,面向?qū)ο蟮母拍睿河幂^簡(jiǎn)單的抽象隱藏底...

    nevermind 評(píng)論0 收藏0
  • 后端好書(shū)閱讀與推薦(續(xù)三)

    摘要:后端好書(shū)閱讀與推薦系列文章后端好書(shū)閱讀與推薦后端好書(shū)閱讀與推薦續(xù)后端好書(shū)閱讀與推薦續(xù)二后端好書(shū)閱讀與推薦續(xù)三這里依然記錄一下每本書(shū)的亮點(diǎn)與自己讀書(shū)心得和體會(huì),分享并求拍磚。然后又請(qǐng)求封鎖,當(dāng)釋放了上的封鎖之后,系統(tǒng)又批準(zhǔn)了的請(qǐng)求一直等待。 后端好書(shū)閱讀與推薦系列文章:后端好書(shū)閱讀與推薦后端好書(shū)閱讀與推薦(續(xù))后端好書(shū)閱讀與推薦(續(xù)二)后端好書(shū)閱讀與推薦(續(xù)三) 這里依然記錄一下每本書(shū)的...

    lauren_liuling 評(píng)論0 收藏0
  • 后端好書(shū)閱讀與推薦(續(xù)三)

    摘要:后端好書(shū)閱讀與推薦系列文章后端好書(shū)閱讀與推薦后端好書(shū)閱讀與推薦續(xù)后端好書(shū)閱讀與推薦續(xù)二后端好書(shū)閱讀與推薦續(xù)三這里依然記錄一下每本書(shū)的亮點(diǎn)與自己讀書(shū)心得和體會(huì),分享并求拍磚。然后又請(qǐng)求封鎖,當(dāng)釋放了上的封鎖之后,系統(tǒng)又批準(zhǔn)了的請(qǐng)求一直等待。 后端好書(shū)閱讀與推薦系列文章:后端好書(shū)閱讀與推薦后端好書(shū)閱讀與推薦(續(xù))后端好書(shū)閱讀與推薦(續(xù)二)后端好書(shū)閱讀與推薦(續(xù)三) 這里依然記錄一下每本書(shū)的...

    ckllj 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<