anychat極簡 websocket 聊天插件
anychat 是一個(gè)極簡純凈的 websocket 聊天插件,支持對接任何身份系統(tǒng),嵌入方只需提供三個(gè) API 即可進(jìn)行實(shí)時(shí)通訊。支持個(gè)人聊天、群聊天、上下線、查看聊天記錄、離線消息推送等,服務(wù)器絕對控制權(quán)的推送機(jī)制,合理的線程設(shè)計(jì),支持 mongodb 存儲聊天記錄,天生的嵌入式支持。
截圖
體驗(yàn)地址:
https://www.threecss.com/AnyChatClient/third-embed-demo.html
內(nèi)部流程圖
優(yōu)勢:
1、合理的線程歸屬設(shè)計(jì),登錄、離線、斷線歸屬線程1,其他業(yè)務(wù)歸屬隨機(jī)線程。 2、服務(wù)器掌握絕對的控制權(quán),消息首先推送至每個(gè)人的消費(fèi)隊(duì)列,每個(gè)線程再進(jìn)行輪訓(xùn)推送消息。 3、第三方身份系統(tǒng)只需提供身份驗(yàn)證、好友列表或組織成員列表、獲取組信息三個(gè)api即可完成對接,進(jìn)行聊天。 4、支持嵌入式,通過iframe即可進(jìn)行嵌入 <iframe src="https://ip:port/AnyChatClient/index.html?token=5ffdefd0e1104ebdbc49cc6de538b669"></iframe> 5、支持聊天記錄存入MongoDB,提高性能。
項(xiàng)目目錄結(jié)構(gòu):
AnyChatServer(目錄結(jié)構(gòu) 3276行)
|--src.main.java(服務(wù)器代碼) |--AnyChatServer.properties---------------配置文件(需要修改) |--generatorConfig.xml--------------------mybatis自動(dòng)生成配置文件(重新生成時(shí),需要修改) |--org.anychat |--action.IdentityAction.java---------從第三方身份系統(tǒng)獲取數(shù)據(jù)(對接非默認(rèn)身份系統(tǒng)時(shí),需要修改) |--init.InitServlet-------------------啟動(dòng)類 |--mongodb----------------------------聊天記錄存儲至mongodb的擴(kuò)展包(如果不用mongodb,此包沒用) |--plugin.PaginationPlugin.java-------mybatis自動(dòng)生成配置文件啟動(dòng)類 |--protobuf(消息包生成工具)
AnyChatClient(912行代碼)
|--js(js庫) |--anychat(anychat文件夾) |--css(anychat css) |--dist(anychat js打包版本) |--images(anychat image) |--src(anychat js未打包版本) |--lib(依賴js) |--jquery.min.js ###################################### |--juggle-all.js(解耦合的工具庫ALL IN ONE:https://github.com/dianbaer/juggle) 或 |--juggle-help.js |--juggle-event.js (解耦合的工具庫small require:https://github.com/dianbaer/juggle) |--juggle-websocket.js |--juggle-mv.js ###################################### |--jquery.mCustomScrollbar.concat.min.js |--third(third-embed-demo.html使用的樣式) |--index.html(示例啟動(dòng)項(xiàng)目,需要修改鏈接AnyChatServer地址) |--third-embed-demo.html(第三方嵌入index.html示例)
評論
圖片
表情
