摘要:服務(wù)和服務(wù)之間的解耦和通訊可使用內(nèi)置的隊(duì)列或發(fā)布訂閱實(shí)現(xiàn),消息處理器接收到任務(wù)后,會(huì)將該任務(wù)交由線程池處理,處理后通過發(fā)送廣播或發(fā)給指定的。前端基于開發(fā),建議使用瀏覽器體驗(yàn)。在線體驗(yàn)測(cè)試用戶,口令均為源碼地址服務(wù)端端
之前工作接觸了幾個(gè)開源的IM產(chǎn)品,再加上曾經(jīng)用Netty實(shí)現(xiàn)過幾個(gè)服務(wù),于是就有了用Netty實(shí)現(xiàn)一個(gè)IM的想法,于是用業(yè)余時(shí)間寫了一個(gè)IM,和喜歡Netty的程序員們分享。
考慮到方便擴(kuò)展,在服務(wù)端采用了Http+Socket結(jié)合的設(shè)計(jì),客戶端所有的請(qǐng)求都基于Http,如發(fā)送消息、修改個(gè)人信息等,所有的消息推送采用Socket方式即時(shí)推送到客戶端,這樣的設(shè)計(jì)可以在并發(fā)訪問量大的情況下,將Http服務(wù)與Socket服務(wù)分開部署,減小各自的訪問壓力。
Http服務(wù)也基于Netty實(shí)現(xiàn),在Netty之上做了擴(kuò)展,參考Spring MVC注解實(shí)現(xiàn)了netty-rest-server(netty-rest-server),使用該框架,可實(shí)現(xiàn)注解注入REST controller,實(shí)現(xiàn)統(tǒng)一異常處理控制器和攔截器(如跨域攔截器、身份驗(yàn)證攔截器等)。
Http服務(wù)和Scoket服務(wù)之間的解耦和通訊可使用Java內(nèi)置的隊(duì)列或Redis發(fā)布/訂閱實(shí)現(xiàn),消息處理器接收到任務(wù)后,會(huì)將該任務(wù)交由線程池處理,處理后通過GroupChannel發(fā)送廣播或發(fā)給指定的Channel。
前端基于Vue+Element-UI開發(fā),建議使用Chrome瀏覽器體驗(yàn)。
在線體驗(yàn):http://123.207.147.138:8000
測(cè)試用戶:test1、test2、test3,口令均為:123456
源碼地址:服務(wù)端
Web端
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/71257.html
摘要:是一個(gè)持久化的協(xié)議,相對(duì)于這種非持久的協(xié)議來說。最大的特點(diǎn)就是實(shí)現(xiàn)全雙工通信客戶端能夠?qū)崟r(shí)推送消息給服務(wù)端,服務(wù)端也能夠?qū)崟r(shí)推送消息給客戶端。參考鏈接知乎問題原理原理知乎問題編碼什么用如果文章有錯(cuò)的地方歡迎指正,大家互相交流。 前言 今天在慕課網(wǎng)上看到了Java的新教程(Netty入門之WebSocket初體驗(yàn)):https://www.imooc.com/learn/941 WebS...
摘要:分布式高并發(fā)微服務(wù)問阿里京東螞蟻等大廠面試真題解析道跳槽漲薪必備精選面試題最新版大廠面試真題集點(diǎn)擊這里免費(fèi)領(lǐng)取點(diǎn)擊這里免費(fèi)領(lǐng)取 估計(jì)很多Java程序員平時(shí)主要的工作就是一些Web系統(tǒng)的業(yè)務(wù)開發(fā),對(duì)于服務(wù)端IO程序以及網(wǎng)絡(luò)通信編程做得并不多,但是對(duì)于高級(jí)或者資深程序員來說,IO通信以及服務(wù)端編...
摘要:無論你是前端后端移動(dòng)端開發(fā)人員,或是設(shè)計(jì)師產(chǎn)品經(jīng)理,都可以在平臺(tái)上發(fā)布項(xiàng)目,與志同道合的小伙伴一起協(xié)作完成項(xiàng)目。 全平臺(tái)全棧開源項(xiàng)目 coderiver 今天終于開始前后端聯(lián)調(diào)了~ 首先感謝大家的支持,coderiver 在 GitHub 上開源兩周,獲得了 54 個(gè) Star,9 個(gè) Fork,5 個(gè) Watch。 這些鼓勵(lì)和認(rèn)可也更加堅(jiān)定了我繼續(xù)寫下去的決心~ 再次感謝各位大佬! ...
摘要:結(jié)構(gòu)作為服務(wù)端作為序列化數(shù)據(jù)的協(xié)議前端通訊演示地址服務(wù)端實(shí)現(xiàn)啟動(dòng)類長連接示例主線程組從線程組請(qǐng)求的解碼和編碼把多個(gè)消息轉(zhuǎn)換為一個(gè)單一的或是,原因是解碼器會(huì)在每個(gè)消息中生成多個(gè)消息對(duì)象主要用于處理大數(shù)據(jù)流,比如一個(gè)大小的文件如果你直接傳輸肯定 結(jié)構(gòu) netty 作為服務(wù)端 protobuf 作為序列化數(shù)據(jù)的協(xié)議 websocket 前端通訊 演示 GitHub 地址 showImg(...
閱讀 2260·2023-04-25 14:50
閱讀 1234·2021-10-13 09:50
閱讀 1866·2019-08-30 15:56
閱讀 1839·2019-08-29 15:29
閱讀 2887·2019-08-29 15:27
閱讀 3548·2019-08-29 15:14
閱讀 1192·2019-08-29 13:01
閱讀 3299·2019-08-26 14:06