若依(基于SpringBoot的权限管理系统)集成MobileIMSDK实现IM服务端的搭建
場景
若依(基于SpringBoot的權限管理系統)的快速搭建:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/111030441
MobileIMSDK怎樣將Java服務端運行起來以及打成jar包運行:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/110128757
上面講過怎樣單獨將若依管理系統和MobileIMSDK的服務端單獨運行起來。
MobileIMSDK除了可以作為Java Application單獨運行起來,還可以作為Web工程里作為子項目運行。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
放在Web工程中運行的原理是,在一個SpringBoot項目啟動后運行MobileIMSDK的啟動類ServerLaunchImpl
的startup方法。
這樣就能在啟動SpringBoot項目的同時將MobileIMSDK的服務啟動,同時還可以使用SpringBoot去擴展其他的服務,比如語音消息的實現。
首先將MobileIMSDK的項目下載下來之后
IM服務端的代碼的位置在demo_src下的MobileIMSDKServerDemo下
?
主要是有這三個類,ServerLaunchImpl是其啟動類。
然后核心業務都在其lib下的sdk的jar包中
?
這里核心sdk的源碼位置在sdk_src下
?
所以需要將服務端以及sdk的依賴添加到若依項目中,并且將sdk的源碼添加進來。根據sdk的lib下所需要的jar有
?
所以在搭建好若依項目后打開,暫且將im的服務放在ruoyi-admin模塊下,打開ruoyi-admin下的pom.xml
?
根據上面需要的jar包添加如下maven依賴
??????? <!--im驅動包--><!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version></dependency><!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- https://mvnrepository.com/artifact/io.netty/netty-all --><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.50.Final</version></dependency><!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --><dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.9.0</version></dependency><!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.21</version></dependency><!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.21</version></dependency>添加完依賴之后,我們在ruoyi-admin下的包路徑下新建imserver包,存放im相關的業務。
然后再新建sdk包,用來存放MobileIMSDK的sdk的源碼
然后再新建config包,用來設置SpringBoot應用啟動后啟動IM的啟動類
然后將IM的服務端的三個類復制過來
?
注意修改這三個類中import的路徑問題,都要重新修改。
然后將MobileIMSDK的sdk_src源碼下的server下的所有包和類全部復制到若依項目下sdk包下
?
然后打開sdk下的每一個類和接口,將原來的路徑下的import全部去掉,然后重新導入為自己的路徑
?
然后在imserver包下新建config包,包下新建類ChatServerRunner類
使其實現SpringBoot的CommandLineRunner接口并實現其run方法
那么run方法再SpringBoot服務啟動后就會自動被調用
修改其代碼為
package com.ruoyi.web.imserver.config;import com.ruoyi.web.imserver.ServerLauncherImpl; import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component;/*** <p> 啟動MobileIMSDK服務端 </p>** @author :* @description : run方法在SpringBoot服務啟動之后會自動被調用* @date :*/@Component @Order(value = 1) public class ChatServerRunner implements CommandLineRunner {@Overridepublic void run(String... strings) throws Exception {// 實例化后記得startup哦,單獨startup()的目的是讓調用者可以延遲決定何時真正啟動IM服務final ServerLauncherImpl sli = new ServerLauncherImpl();// 啟動MobileIMSDK服務端的Demosli.startup();// 加一個鉤子,確保在JVM退出時釋放netty的資源Runtime.getRuntime().addShutdownHook(new Thread(sli::shutdown));}}然后找到ruoyi-admin下的啟動類RuoYiApplication運行,運行成功后
?
就會發現將IM的服務也啟動成功了。
為了驗證可以使用官方的Java客戶端去連接進行驗證
?
就可以連接到我本地的im服務了
?
連接成功后發送消息效果,至此整合成功。
示例代碼下載:
https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/13632140
?
總結
以上是生活随笔為你收集整理的若依(基于SpringBoot的权限管理系统)集成MobileIMSDK实现IM服务端的搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 若依(基于SpringBoot的权限管理
- 下一篇: SpringBoot中实现Command