oim-server是OIM聊天系統的服務端,Java語言開發,Spring Cloud 微服務架構,只要機器夠,使用者不是問題。
OIM服務是採用Java語言開發,基於spring cloud微服務體系開發的一套即時通訊服務端。 從單機到微服務都提供了可部署方案,單機、微服務都可以平滑切換,客戶端可以毫無感知服務變更。
特點
oim-server 可以讓你像spring mvc一樣開發即時通訊接口,對於有web後台開發經驗,沒用即時通訊服務端經驗開發者,可以輕鬆轉換,並且兼容spring web接口。如下範例
請求介面@RestControllerpublic class UserController {/** * * 登入
* Date 2019-02-17 12:26:38
* * @param user * @since 1.0.0 */@ActionMapping(value = " /user/login") // 此路同樣可以用http post請求public User login(@Define("body.user") User user) { // "body.user"(此body是json內的body字段,不是http協定的body) // 是http或tcp中的訊息體json屬性路徑{"body":{"user":{ }}}// ...省略實作內容return user;}}
目錄說明
|__oim-server-run # Java服務|__cloud #微服務運行版|__common #公共依賴的jar |__oim-server-element-basic-* #這些是單機和微服務都依賴部分,含一些抽象定義,微服務和單機有不同實作|__oim-server-element-cloud-* #這些是微服務所需的依賴,針對微服務的一些實作|__service #每個運行的微服務|__core #主要是技術管理類型微服務如:註冊中心、網關等|__action #收集所有服務的介面位址,這樣網關可以無需配置服務名,直接透過介面位址存取對應的服務|__admin #只是整合了spring boot admin |__center #註冊中心|__gateway #網關|__net #即時通訊的TCP、WebSocket等長連接服務|__control 用於管理(net-work)用戶客戶端長連線服務|__work使用者客戶端長連線服務|__support #公共支援服務如:檔案上傳|__file |__system #針對整個系統的設定、共資料等|__setting # |__work #業務服務(因為business太長了,還有其他地方容易用到這個名字) |__chat #聊天業務|__contact #聯絡人|__core #核心:使用者|__group #群組|__portal #服務位址入口|__single # |__oim-server-single-main #因為單機和微服務的功能模組是共用的,這裡是針對一些抽象的單機實作|__oim-server-single-running #啟動服務設定|__oim-server-web # Vue 後台管理介面
OIM開發說明
1、環境要求
JDK 1.8.0_xxx
DB 支援MySQL Oracle SQL server 推薦MySQL 8.0
微服務還需以下
Redis
RaadfdsitMQ
2、關於微服務版和使用
微服務版的業務代碼和業務代碼是共用的,所以業務模組都在微服務目錄下。只是在IM長連接等處理上有差別,所以單機和微服務需要不同處理的
地方抽象化成接口,在不同啟動服務中各自實現
3.關於部分依賴下載不下來
因為部分依賴尚未發佈到maven中央庫,而是在我的私庫中,所以maven全域設定檔(通常在使用者目錄下.m2/setting.xml)中不能配置
鏡像服務(中部分註解或刪掉)
私庫maven配置專案中已經配置
4.關於資料庫腳本
只要先建立好資料庫,修改資料庫設定、啟動自動建立表。目前預設H2資料庫建立表格有問題,建議使用MySQL 8.0