进入和离开聊天室

更新时间: 2023/10/18 08:02:37

聊天室是一种比群组更加松散、开放的形态,类似于一个广场,没有严格的准入机制,用户进出自由,一般来说也没有太固定的成员组织架构。典型的应用场景包括娱乐直播、教育直播内的聊天室。本文介绍通过 NERoom SDK 进入和离开聊天室的方法。

功能介绍

NERoom 聊天室的参与人数无上限。

聊天室相当于一个广场,只要有人看到了进入广场的门,任何人随时都可以进来,也可以随时离开。而群就像是一个公司,公司是一个更加私密的组织,必须是这个组织内的成员才能进入,成为成员可以是主动申请也可以是被邀请加入。

创建房间时,如果设置 enableChatroom=true,服务端会自动创建聊天室。

聊天室中的成员可以相互发送和接收文本消息。

前提条件

  • 进入聊天室之前,请先通过 joinRoom 加入房间。
  • 创建房间时,已在 NECreateRoomOptions 方法中,设置 enableChatroom=true,具体操作方法请参见创建房间

进入聊天室

用户要在聊天室收发消息之前,必须先调用接口进入聊天室。聊天室只允许用户手动进入,无法进行邀请。

配置步骤

  1. 调用 getRoomContext 接口获取房间上下文。

    调用此方法时,您需要将 roomUid 设置为您所加入房间的 ID。

  2. 调用 getRoomContext 接口进入聊天室。

  3. 成员进入聊天室成功后,会触发 NERoomListener 协议中的回调方法,告知房间内成员:某成员进入聊天室。

swift func onMembersJoinChatroom(members: [NERoomMember])

示例代码

实现进入聊天室的示例代码如下:

swift    let roomContext = NERoomKit.shared().roomService.getRoomContext(roomUuid: "房间ID")

    guard let roomContext = roomContext else {
        return
    }
    roomContext.chatController.joinChatroom { code, string in
        if code == 0 {
            print("Successfully join chatroom")
        } else {
            print("Failed to join chatroom. Rease: \(string ?? "")")
        }
    }

离开聊天室

离开聊天室,会断开聊天室对应的链接,并不再收到该聊天室的任何消息。

配置步骤

  1. 调用 getRoomContext 接口获取房间上下文。

    调用此方法时,您需要将 roomUid 设置为您所加入房间的 ID。

  2. 调用 leaveChatroom 接口离开聊天室。

  3. 成员离开聊天室成功后,会触发 NERoomListener 协议中的回调方法,告知房间内成员:某成员离开聊天室。

func onMembersLeaveChatroom(members: [NERoomMember])

示例代码

实现离开聊天室的示例代码如下:

swift    let roomContext = NERoomKit.shared().roomService.getRoomContext(roomUuid: "房间ID")

    guard let roomContext = roomContext else {
        return
    }
    roomContext.chatController.leaveChatroom { code, string in
        if code == 0 {
            print("Successfully leave chatroom")
        } else {
            print("Failed to leave chatroom. Reason: \(string ?? "")")
        }
    }

实现监听成员加入和离开聊天室的示例代码如下:

swift    class RoomController: UIViewController, NERoomListener {
        func viewDidLoad() {
            guard let roomContext = NERoomKit.shared().roomService.getRoomContext(roomUuid: "房间ID") else {
                return
            }
            roomContext.addListener(listener: roomController)
        }

        // 成员加入聊天室触发
        func onMembersJoinChatroom(members: [NERoomMember]) {}
        // 成员离开聊天室触发
        func onMembersLeaveChatroom(members: [NERoomMember]) {}
    }

API 参考

方法 功能描述
joinChatroom 加入聊天室。
leaveChatroom 离开聊天室。
此文档是否对你有帮助?
有帮助
去反馈
  • 功能介绍
  • 前提条件
  • 进入聊天室
  • 配置步骤
  • 示例代码
  • 离开聊天室
  • 配置步骤
  • 示例代码
  • API 参考