Tag: 群组聊天

使用FIREBASE进行群聊的结构

大家好,在本博客中,您将了解如何使用Firebase节点有效地设计GROUP CHAT的体系结构,并且您还将能够处理Group Chat Flow的所有情况。 例如:最近的消息,谁创建了组,该组的成员,谁离开了该组。 前提条件—具有根据各自的技术(如iOS,Android等)提供的Firebase节点,Firebase事件和观察者的中级知识。 因此,让我们分为五个部分以更好地理解: 1)使用基本用户详细信息ID,名称,图片(根据您的要求)启动一个Users节点。 忽略组ID一段时间。 2)创建一个GroupDetail节点,该节点将包含组的所有详细信息,还将包含所有都属于该组的用户ID数组。 3)在通过成员数组创建组遍历并执行以下操作之后 3.1)从“ 用户”节点获取用户详细信息 3.2)将新的节点组启动为数组或组ID,并附加最近创建的组ID。 例如 群组[group_id1,group_id2] 注意:如果“组”节点已经存在,且带有一些组ID,则获取该数组并附加新的组ID,以便确认用户位于多个组中。 4)我们完成了与用户创建群组和关联群组的工作,现在让我们聊天。 创建一个GroupMessage节点,并使用已发送消息的id-user_id之类的详细信息更新消息,以及所有必要的消息详细信息(例如时间戳等)(根据您的要求) 5)在将消息添加到消息节点之后,将相同的消息添加到组详细信息中,并添加一个新的节点,称为最近消息 。 这样我们始终可以仅从组详细信息中获取最新消息。 在填充组列表时很有用。 津贴和用例: 最近的聊天记录–我们将始终在最近的聊天屏幕中获取群组的最新消息。 如果最近的聊天为空,则可以填充“您创建了群组”或“您是由添加的”之类的消息 如果某个用户离开了群组或从群组中删除,我们只需要从用户和群组详细信息中删除我想要的群组即可,我们已经完成了。 通过单个观察者功能,我们将能够获取组详细信息以及组的最新消息。 谢谢 ,欢迎任何建议/反馈。

在StackView中建立具有多个成员的视频聊天应用程序⎚

Agora的视频聊天SDK是启用多成员视频通话的最简单方法之一。 与竞争对手相比,Agora丰富的,低延迟的群聊建立在Agora的软件定义的实时网络之上,该技术利用算法来找到路由视频流呼叫的最佳方法! 在此基础教程中,您将使用Apple最新版本的全新编程语言Swift 5在iOS 12中启动并运行多成员视频聊天。 在您的应用中,您将实现以下基本功能:1)设置,2)加入频道,3)使用户静音/取消静音以及4)使用UIStackView缩放屏幕上多个成员的布局。 实现我们的关键是希望在单个视频通话中为多个成员安排视图,以便每当成员数量增加或减少时,布局就可以缩放! 在您的实现中,将使用UIStackView的实例。 设置Agora的SDK 创建一个Agora帐户 1.导航到Agora的登录网站。 2.完成入职过程。 从** Projects> Project List **导航至仪表板。 3.复制您的应用程序ID。 4.为您的项目创建一个根目录。 如果找不到仪表板或应用程序ID,请查看Agora教程视频: 设置本地视频 配置视频可能会造成混淆,尤其是在使用模式等概念时。 但是,Agora的SDK确实非常容易。 画布就像艺术品一样,是用于UI的。 func setupLocalVideo(){ 让videoCanvas = AgoraRtcVideoCanvas() videoCanvas.uid = 0 videoCanvas.view = localVideo videoCanvas.renderMode = .hidden agoraKit.setupLocalVideo(videoCanvas) } 常量videoCanvas实例化了一个AgoraRtcVideoCanvas()实例,该实例的属性随后进行了设置。 为.uid分配0会随机分配用户ID。 将.renderMode分配.renderMode可以缩放视频的视图。 如果您从Main.storyboard调用我们的设置,则Main.storyboard的view属性将分配给localVideo属性。 最后,在viewDidLoad()调用setupLocalVideo() viewDidLoad() 。 代表扩展 您可以扩展代理的功能,实现解码方法,设置远程视频,监视脱机/联机或静音: 扩展VideoCallViewController:AgoraRtcEngineDelegate { func rtcEngine(_引擎:AgoraRtcEngineKit, firstRemoteVideoDecodedOfUid uid:UInt,大小:CGSize,经过时间:Int){ […]