日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

适用于开发者的开源分布式即时通讯系统

發(fā)布時間:2023/12/20 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 适用于开发者的开源分布式即时通讯系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大家平時工作中用什么通訊工具進行交流呢?微信?QQ?但是有不少單位為了防止員工摸魚,不允許員工使用上述工具,但一些能給大家用的本地通訊工具呢又不怎么好用,所以今天TJ君來和大家分享一個適用于開發(fā)者的分布式即時通訊系統(tǒng),cross IM,簡稱 CIM

CIM總的來說,是一款面向開發(fā)者的即時通訊系統(tǒng),它可以提供一些組件幫助開發(fā)者構建成一款屬于自己的即時通訊工具。

目前已經(jīng)實現(xiàn)的功能有:

  • 群聊

  • 私聊

  • 內(nèi)置命令

  • 聊天記錄查詢。

  • 一鍵開啟的 AI 模式

  • 使用 Google Protocol Buffer 高效編解碼

  • 根據(jù)實際情況靈活的水平擴容、縮容

  • 服務端自動剔除離線客戶端

  • 客戶端自動重連

  • 延時消息

在開發(fā)計劃中的功能有:

  • 分組群聊

  • SDK 開發(fā)包

  • 離線消息

  • 協(xié)議支持消息加密

整體的系統(tǒng)架構如下圖所示:

其中,各個組件均采用SpringBoot構建,底層通信采用Netty構建,而存放各個客戶端的路由信息、賬號信息、在線狀態(tài)的則是Redis,最后使用了Zookeeper進行IM-server的注冊與發(fā)現(xiàn)。

其整體功能流程可以這樣理解:

首先客戶端向route發(fā)起登錄。登陸成功后,從Zookeeper中選擇可用的IM-server返回給客戶端,并保存登錄、路由信息到Redis。然后由 客戶端向IM-server發(fā)起長連接請求,連同后保持活躍。最后當客戶端下線時通過route清除狀態(tài)信息。

快速啟動四步驟

1、安裝 Zookeeper、Redis 并保證網(wǎng)絡通暢。

cd?cim mvn?-Dmaven.test.skip=true?clean?package

2、部署 IM-server(cim-server)

cim-server 集群部署同理,只要保證 Zookeeper 地址相同即可。

cp /cim/cim-server/target/cim-server-1.0.0-SNAPSHOT.jar /xx/work/server0/ cd /xx/work/server0/ nohup java -jar /root/work/server0/cim-server-1.0.0-SNAPSHOT.jar --cim.server.port=9000 --app.zk.addr=zk地址 > /root/work/server0/log.file 2>&1 &

3、部署路由服務器(cim-forward-route)

cim-forward-route 本身就是無狀態(tài),可以部署多臺;使用 Nginx 代理即可。

cp?/cim/cim-server/cim-forward-route/target/cim-forward-route-1.0.0-SNAPSHOT.jar?/xx/work/route0/ cd?/xx/work/route0/ nohup?java?-jar??/root/work/route0/cim-forward-route-1.0.0-SNAPSHOT.jar?--app.zk.addr=zk地址?--spring.redis.host=redis地址?--spring.redis.port=6379??>?/root/work/route/log.file?2>&1?&

4、啟動客戶端

啟動兩個客戶端就可以互相通信。

cp?/cim/cim-client/target/cim-client-1.0.0-SNAPSHOT.jar?/xx/work/route0/ cd?/xx/work/route0/ java?-jar?cim-client-1.0.0-SNAPSHOT.jar?--server.port=8084?--cim.user.id=唯一客戶端ID?--cim.user.userName=用戶名?--cim.route.url=http://路由服務器:8083/

客戶端有一些常用的內(nèi)置命令,例如:

:q!?退出客戶端

:olu?獲取所有在線用戶信息

:all?獲取所有命令

:q [option]?【:q 關鍵字】查詢聊天記錄

:ai?開啟 AI 模式

:qai?關閉 AI 模式

:pu?模糊匹配用戶

:info?獲取客戶端信息

:emoji [option]?查詢表情包 [option:頁碼]

:delay [msg] [delayTime]?發(fā)送延時消息

讓我們一起看下一些實際聊天交流的效果:

如果覺得不錯的小伙伴,可以來試試哦!項目地址如下:

點擊下方卡片,關注公眾號“TJ君

回復“CIM2022”,獲取倉庫地址

關注我,每天了解一個牛x、好用、有趣的東東

另外,我們將之前發(fā)過的各種項目及工具進行了整理,收錄到了GitHub項目,歡迎各位小伙伴光臨Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU

往期推薦

  • Spring Boot+Vue的開源小商城項目

  • 疫情期間,搶不到菜,怎么辦?

  • 易用友好的云監(jiān)控系統(tǒng),網(wǎng)站監(jiān)測,自定義監(jiān)控,閾值告警,樣樣精

總結

以上是生活随笔為你收集整理的适用于开发者的开源分布式即时通讯系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。