java 集成融云demo并改造成springboot

       前几天刚把腾讯IM的及时聊天改完 但是还有些许bug没有处理 后来发现融云的出API了 就立马去试了一下 发现还是官网demo比较好用 在此做个记录

       首先把官网demo下载下来再实现我们的改造: github地址

       下载下来之后我们会得到这样一个项目

       java 集成融云demo并改造成springboot_第1张图片

      之后我们搭建一个springboot的架子

      springboot 相信大家都会搭建了  

      直接上我的pom.xml

      



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.9.RELEASE
         
    
    
        1.8
        2.1.9
        1.0.5
        4.5.13
        UTF-8
    
    com.rong
    im_core
    1.0.0
    im_core
    
        For improving the efficiency of developers,RongCloud provides an open source IM Server SDK officially.
        With this SDK, you can get token, send messages, add sensitive words, ban user, manage group, create chat room and so on.
    
    https://github.com/rongcloud/server-sdk-java
    
        https://github.com/rongcloud/server-sdk-java
        scm:git:https://github.com/rongcloud/server-sdk-java.git
    
    
        RcongCloud Group
        https://github.com/rongcloud
    
    
     
    
        
            rongcloud
            rongcloud
        
    

    
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        
        
            com.google.code.gson
            gson
        
        
            commons-codec
            commons-codec
            1.4
        
        
            com.alibaba
            fastjson
            1.2.41
        
        
            junit
            junit
            4.12
        
        
            com.thoughtworks.xstream
            xstream
            1.4.9
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            [2.9.9.2,)
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.9.10
        
        
            org.apache.commons
            commons-lang3
            3.6
        
        
            org.projectlombok
            lombok
            true
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.7
                    1.7
                    UTF-8
                    
                        ${project.basedir}/lib
                    
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        

        
            
                src/main/resources
                true
            
        
    


之后直接进行项目的迁移 我的是已经接入过的config 接口 dto对象都都是自己创建的  红色方框中的包是直接从demo中copy下来的 

java 集成融云demo并改造成springboot_第2张图片

下面开始将配置文件

java 集成融云demo并改造成springboot_第3张图片

这个是融云的请求json实例 需要复制过来

最后就是properties

server.port=8082
server.servlet.context-path=/im_core
system.appKey=
system.appSecret=

填写上你申请的key和secret就可以直接使用了

之后开始根据自己的业务进行适当的改造就可以了

拿注册为例子 先是请求vo

import lombok.Data;

import java.io.Serializable;

/**
 * @author Jiang
 * @date 2019/10/12 16:10
 */
@Data
public class RegisterRongReqVO implements Serializable {
    private static final long serialVersionUID = 42625358235375025L;

    private String hand;

    private String nick;

    private String id;
}

之后是第三方交互dto

import lombok.Data;

import java.io.Serializable;

/**
 * @author Jiang
 * @date 2019/10/12 16:49
 */
@Data
public class RegisterUserDto implements Serializable {

    private static final long serialVersionUID = -3474840018641708589L;

    private String token;

    private String userId;

    private String code;
}

读取配置文件

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 
 * 系统默认属性
 */
@Data
@Component
@ConfigurationProperties(prefix = "system")
public class SystemDefaultConfig {

	private String appKey;

	private String appSecret;


}

最后是接口

    @Autowired
    SystemDefaultConfig systemDefaultConfig;

    @GetMapping("reg")
    public ResponseResult reg(RegisterRongReqVO vo){
        RongCloud rongCloud = RongCloud.getInstance(systemDefaultConfig.getAppKey(), systemDefaultConfig.getAppSecret());
        User User = rongCloud.user;
        try{
            /**
             * API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/user.html#register
             *
             * 注册用户,生成用户在融云的唯一身份标识 Token
             */
            UserModel user = new UserModel()
                    .setId(vo.getId())
                    .setName(vo.getNick())
                    .setPortrait(vo.getHand());
            TokenResult result = User.register(user);
            RegisterUserDto dto = new GsonBuilder()
                    .create().fromJson(result.toString(),
                            new TypeToken() {
                            }.getType());
            if(dto.getCode().equals("200")){
                return ResponseResult.success(dto.getToken());
            }
            return ResponseResult.failNotice("注册失败");
        }catch (Exception e) {
            return ResponseResult.failNotice("注册失败");
        }
    }

然后打开项目 打开postman 开始测试

java 集成融云demo并改造成springboot_第4张图片

 

我是为了拿到他的第三方签名让APP去登陆用的所以我直接返回了一个字符串就是融云的签名 放到缓存数据库中 也可以直接持久化到mysql中 看业务需求  还有最好将第三方的代码仔细阅读一遍  这样改起来更顺手点  直接将此项目打成jar包通过远程RPC调用即可

  总结:一天一坑 迟早会有我踩完的那一天 

你可能感兴趣的:(java,rongyun,中间件)