ZIM SDK 提供多人房间聊天功能,支持用户向房间内发送文本消息或自定义消息,实现了多人在线交流、同步分享。
创新互联是专业的安仁网站建设公司,安仁接单;提供成都网站制作、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行安仁网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
多人房间聊天功能可应用于小班课或者会议室等场景,房间成员数量上限请参考 计费说明。
在实现“房间管理”功能之前,请确保:
用户可以通过以下两种方式,创建房间并进入房间。
createRoom
接口,传入 ZIMRoomInfo
信息,即可创建并加入房间。其他用户调用 joinRoom
接口,传入由 A 创建的房间 roomID,即可加入房间。enterRoom
接口,传入 ZIMRoomInfo
信息,如果 roomID 不存在,会自动创建一个房间然后进入。其他用户需要调用 enterRoom
接口,传入由 X 创建的房间 roomID,进入房间。房间内的用户,可以通过 sendRoomMessage
接口,向房间内发送消息,详情请参考 收发房间消息。
如果 roomID 已存在:
createRoom
接口,会返回相关错误码,详情请参考 常见错误码。enterRoom
接口,会直接进入此房间内。如果 roomID 不存在:
createRoom
接口,可以直接创建、并加入到此房间内。enterRoom
接口,会直接创建一个房间、并进入到此房间内。以下流程中,我们以客户端 A 创建并加入房间,客户端 B 和其他客户端加入房间为例。
客户端 A 登录后,创建一个房间,可以调用 createRoom
接口,传入 ZIMRoomInfo
信息,即可创建并加入房间。同时可以通过错误码 ZIMError
的参数值,判断是否创建成功。相关错误码请查看 常见错误码。
createRoom
接口创建房间后,会直接加入房间,无需再调用 joinRoom
接口加入房间。var roomInfo = { roomID: '', roomName: '' };
zim.createRoom(roomInfo)
.then(function ({ roomInfo }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
客户端 B 和其他客户端先后加入房间,可以调用 joinRoom
接口,传入由 A 创建的房间 roomID,即可加入房间。同时可以通过错误码 ZIMError
的参数值,判断是否创建成功。相关错误码请查看 常见错误码。
var roomID = '';
zim.joinRoom(roomID)
.then(function ({ roomInfo }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
当房间有其他成员加入时,将通过 on
的回调接口 roomMemberJoined
,向其他已在成员发送消息通知。
例如,当客户端 B 加入由 A 创建的房间时,A 将收到房间内成员变动的通知。
// 加入房间通知,通过该通知收到加入房间的用户信息
zim.on('roomMemberJoined', function (zim, { roomID, memberList }) {
console.log(roomID, memberList);
});
以下流程中,我们以客户端 X 创建并进入房间,客户端 Y 和其他客户端直接进入房间为例。
enterRoom
接口,传入 ZIMRoomInfo
信息,进入房间;如果传入的 roomID 不存在,将会自动创建一个房间并进入该房间。enterRoom
接口,传入由 X 创建的房间 roomID,直接进入房间。on
的回调接口 roomMemberJoined
方法,实现对房间内成员加入的监听。var roomInfo = { roomID: '', roomName: '' };
zim.enterRoom(roomInfo)
.then(function ({ roomInfo }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
// 加入房间通知,通过该通知收到加入房间的用户信息
zim.on('roomMemberJoined', function (zim, { roomID, memberList }) {
console.log(roomID, memberList);
});
客户端 B 如果想要离开房间,可以调用 leaveRoom
接口,传入房间的 roomID,即可退出此房间;房间内的其他用户可以通过 on
的回调接口 roomMemberLeft
,收到成员变动通知。
离开房间后,将不能收到房间内的消息。
var roomID = '';
zim.leaveRoom(roomID)
.then(function ({ roomID }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
// 离开房间通知,通过该通知收到离开房间的用户信息
zim.on('roomMemberLeft', function (zim, { roomID, memberList }) {
console.log(roomID, memberList);
});
当所有成员离开房间后,房间将自动销毁,同时支持设置房间延迟销毁。