開篇
電商平臺最不能缺的就是即時通訊,例如通知類下發,客服聊天等,今天就來搞一個開源的即時通訊耍耍。
如對文章不感興趣可直接跳至文章末尾,有獲取開源gitee上鍊接的方法和我自己改的壓縮包的地址。但文章內容是要過一遍的,redis記錄聊天會話相關的,源碼沒有,我自己改的。本文一如既往的實戰,這次來搭建的開源系統,是即時通訊,開源的部分有限,所以作者我抽空給改了改,拿去之後可以後臺可以直接使用。觀看的同學需有一定的工作基礎。如果只對源碼感興趣,看完簡介後請跳至文章末尾,如果對搭建過程學習感興趣趕緊關注、轉發、收藏吧。畢竟源碼沒什卵麼用,怎麼用才是重點。源碼好找,調試不易,請君珍惜。
項目簡介
該項目是一套基於apache mina 和Netty框架下的推送系統,我們平常使用第三方的推送SDK,如極光推送,百度推送,小米推送,以及騰訊信鴿等來支撐自己的移動端的業務,那麼有沒有想過自己也開發一個推送系統?!!或許有一些用戶自己實現即時通訊系統的需求,那麼該套系統可是提供了一個解決方案或者思路,目前該系統支撐 websocket,android,ios,桌面應用,系統應用等多端接入支持。
而且我已經把redis整合進去了,有沒有價值,值不值得收藏,自己看文章!!項目架構
即時通訊聊天的架構都相對較簡單,一般都是服務端+客戶端,能實現用戶A到用戶B的聊天。含金量在於看看支不支持集群擴展。當然核心在於redis存儲各個連接信息。
項目主要模塊
項目分為,服務器端,和客戶端,服務端是netty 整合websocket 和redis,客戶端形式多種多樣,都是調用服務端的,本篇就不重點介紹了,但後面源碼我把我寫的demo給貼出來。
核心調試部分
環境:16G內存的電腦、JDK1.8以上,Maven3.6以上,開發工具Idea,redis 3以上版本。
1、一如既往的導入項目從開源gitee上的地址,如下圖操作,如果網快的畫基本幾分鐘就好了,如果網速慢,那就等等吧。
2、修改redis配置,注意截圖裡的紅色,pom.xml 裡面修改maven依賴,由於原開源項目沒有redis相關代碼,故這一部分是我整理加上的!這裡也是重點。不然你的聊天可支持不了集群!!
3、加入redis相關配置,由於源碼裡面的東西沒必要貼出來,截圖了這裡。需要源碼的到文章末尾吧。包含RedisConfig,RedisUtils,以及相關配置。
4、這裡我們實現一個,nginx做負載均衡和反向代理的相關配置,nginx軟件自己去下載吧。修改nginx.conf,如下
5、把靜態文件放入nginx下的html下,然後運行nginx。並啟動後臺。
6、至此搞完了,來看看效果吧!!!
A、訪問服務端頁面 http://localhost:8080 注意是8080 ,這裡只能給用戶推送信息不能發聊天信息。
B、訪問客戶端頁面 http://localhost/cim-client-web/
C、隨便填寫一個用戶,沒有的話後臺會自動註冊到redis的。例如我填寫的是test;和test2;當然本文重點不是前端頁面,只是簡單的在源代碼的基礎上加了聊天。因為源代碼只有推送,沒有聊天!!
D、看看redis裡的信息 cimsessions 這個key是我加上去的,源代碼裡也沒有,自己可以該成自己的,看自己如何擴展了。
結語
此套開源的即時通訊系統,可以改改成推送的,也可以改成聊天的,後端改改可以拿來直接使用,重點不在前端,但android 和ios還有web都支持,自己看代碼中的例子吧,值不值得收藏,自己先看看文章,覺得可以收藏一下,慢慢看。
作為攻城獅的我們,不收藏些代碼就對不起自己。老規矩,轉發,關注,趕緊收藏吧,私信回覆"im",開源商城作者的代碼開源地址鏈接拿走另外還有我修改後的壓縮包也拿走包括前端和後端修改後的加redis的!!有問題,也可以評論留言,一起學習進步!!注意私信回覆"im"!!閱讀更多 IT小書童 的文章