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