基于webrtc的视频聊天室(四)之用户设计

用户的设计主要是明确其生命周期及其需要持有的对象。


用户的生命周期

  1. 创建 websocket连接时,建立普通用户对象;
  2. 申请通话时,等待对方响应;
  3. 对方接受,如果为群组聊天,则将其更改为 GroupUser 对象;群组聊天比较特殊,原始的用户对象结构已经不满足。
  4. 通话结束,根据域的情况,判断是否进行更改;如果为群组,则更改普通用户对象
  5. 连接断开或者发生错误,销毁用户以及相关的域,域的销毁需要进行独立的判断。并且,发送通知给域中的其它成员。

用户的类设计

BaseUser 在建立ws连接后建立,用于一对一或者一对多通话中;GroupUser 用户用于群组聊天中;

BaseUser包含用户名、session 和 域id (不存在通话域时为null),GroupUser 继承BaseUser,除此之外还新增了多个媒体属性。

  1. WebRtcEndpoint类型的 outgoingMedia,用作当前用户的输出流
  2. Map<String, WebRtcEndpoint> 类型的 incomingMedia,用作当前用户的输入流
  3. MediaPipeline, 处于群组聊天中需要共用同一个 MediaPipeline
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值