服务端集成环信IM聊天

刚不久做了一款直播聊天APP,聊天主要集成的是环信IM,看了下环信官方文档,SDK封装的还是比较全面的,基本上不用服务器端做太多接口处理,闲来无事,最终还是把服务端部分接口封装了一下,现分享出来供大家参考使用,下面对部分功能和使用做一些介绍。

下载源码

src.zip 需要配置Maven环境,使用jdk1.8进行开发

依赖jar包如下:

<dependency>
	<groupId>commons-httpclient</groupId>
	<artifactId>commons-httpclient</artifactId>
	<version>3.1</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>2.8.10</version>
</dependency>
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.58</version>
</dependency>

配置环信客户端

配置环信的client_id和client_secret,环信配置常量放在com.easemob.im.utils.ChatConstant类

${}里需要换成自己的配置,具体信息可在app详情页找到

用户管理

注册用户

//构建用户信息
UserRequest request = new UserRequest();
//注册用户ID
request.setUsername("Tivan");
//用户密码
request.setPassword("123456");
//设置昵称
request.setNickname("测试一号");
//注册成功,返回用户信息
UserManager userManager = ManagerFactory.getInstance(ManagerType.USER);
UserResponse user = userManager.register(request);

获取用户信息

//返回用户详细信息
UserManager userManager = ManagerFactory.getInstance(ManagerType.USER);
UserDetailResponse user = userManager.getUser("Tivan");

聊天室管理

获取聊天室列表

//返回所有聊天室列表
RoomManager roomManager = ManagerFactory.getInstance(ManagerType.ROOM);
List<RoomsResponse> rooms = roomManager.getRooms();

创建聊天室

//构建聊天室信息
RoomsRequest request = new RoomsRequest();
//聊天室名称
request.setName("测试聊天室");
//聊天室描述
request.setDescription("测试聊天室");
//最大用户数
request.setMaxusers(500);
//聊天室拥有者
request.setOwner("Tivan");
//创建成功,返回已创建聊天室ID
RoomManager roomManager = ManagerFactory.getInstance(ManagerType.ROOM);
String roomId = roomManager.createRooms(request);

获取聊天室用户列表

//返回聊天室里用户ID集合
RoomManager roomManager = ManagerFactory.getInstance(ManagerType.ROOM);
List<String> usernames = roomManager.getRoomsUser("96374456647682", 1, 10);

消息管理

发送文本消息

//构造文本消息
MessageRequest request = new MessageRequest();
//目标类型;users:给用户发消息,chatgroups:给群发消息,chatrooms:给聊天室发消息
request.setTargetType("users");
//目标ID(发送给用户,所有这里是用户ID),可以同时发送多个
request.setTarget(Arrays.asList("Tivan"));
//消息发送者
request.setFrom("Tivan");
//文本消息
TxtMessage message = request.new TxtMessage();
//内容
message.setMsg("Hi, Hello");
request.setMsg(message);
//发送消息,返回{"username":"success"}
MessageManager messageManager = ManagerFactory.getInstance(ManagerType.MESSAGE);
Map res = messageManager.send(request);

发送命令消息

//构造命令消息
MessageRequest request = new MessageRequest();
//目标类型;users:给用户发消息,chatgroups:给群发消息,chatrooms:给聊天室发消息
request.setTargetType("chatrooms");
//目标ID(发送给聊天室,所以这里是聊天室ID),可以同时发送多个
request.setTarget(Arrays.asList("95739382398979"));
//消息发送者
request.setFrom("Tivan");
//命令消息
CmdMessage message = request.new CmdMessage();
//命令
message.setAction("action");
request.setMsg(message);
//发送消息,返回{"username":"success"}
MessageManager messageManager = ManagerFactory.getInstance(ManagerType.MESSAGE);
Map res = messageManager.send(request);

下载聊天记录

//返回下载地址
MessageManager messageManager = ManagerFactory.getInstance(ManagerType.MESSAGE);
String url = messageManager.downloadMsg(2019101010);

更多功能请下载源码进行查看。

打赏

您看完此文章的心情是

  • 0人

  • 鼓掌

    0人

  • 草泥马

    0人

  • 愤怒

    0人

  • 鄙视

    0人

评论

    暂无评论...