面对面建群
面对面建群
功能介绍:输入同样数组建立群聊
实现需求
- 数字规则
- 四位
- 非随机生成
- 用户输入数组
- 去除(1,1,1,1、1,2,3,4)简单数字
- 数字有效期多久
- 如果是应用指定数组是不是更合理?
- 检验规则
- 时间差,缓冲期
- 用户必须开启APP(GPS)定位(gps定位,geo运算)
- 是否需要开启网络基站定位
- 计算范围在0-500m
- IP地址是否在同一个局域网
- 如果是好友则是否可以不校验定位(计算)着需要配合校验好友关系多线程处理
- 如果输入数字后用户是群里用户好友和好友之间集合或群里好友的好友的好友集合是否可以不校验定位(计算)着需要配合校验好友关系多线程处理
- 如果有数量限制还需考虑一定时间高并发(比如:0.1秒内抢先进群,和数组数字不点进去)
- 群主规则
- 第一个加入的则为群主
- 后台计入进去顺序(如果群建立成功之后第一个加群的人退出群,则会第二个加群的人去做群主)
- 群数规则
- 最多加多少个人(需要配合群规则?)
- 比如群规则本身最多加500人,那面对面建群有这样限制吗?
- 超过40个是否需要邀请对方同意
- 超过100个是否需要审核用户实名(绑定实名证件银行卡之类的)
- 群占用了数量则不进去则会然后退出需要考虑并发
- 最多加多少个人(需要配合群规则?)
- 头像规则
- 是否是通过前<=9用户头像生成群头像
- 是否给随机或者后台生成随机默认头像跟优化点?
- 群头像过期时间
- 如果是通过<=9用户头像生成群头像如果群<=9人之中有人退出群聊是否是否要更新头像
- 或者默认第一个生成头像退出不做更新?
- 群名规则
- 是否是默认(群聊)
- <=2用户名的名字作为群名(A和B的群聊)
- 第一个输入数字的用户作为群名(A的群聊)
- 是否需要考虑第一个输入数字的用户和<=2的用户人退出群聊是否要考虑更新群名
候选匹配与最终入群分开
以下将旧需求整理为设计推演,距离、有效期和人数上限仍需产品确认。四位数字只是候选匹配条件,不是授权凭证;不同城市可以输入相同数字,需结合时间窗口、位置范围及会话标识避免串群。客户端位置可能过期或被伪造,GPS精度不足时不能仅凭一次距离计算宣称人在现场。
先在有限时间窗口查候选会话,再检查加入资格,最后以原子操作完成成员去重、容量检查和入群序号分配。两个人同时争最后一个名额时,只能一个成功;“先查人数再各自写入”会超额。重试沿用加入请求标识,避免重复成员或重复占名额。好友豁免定位属于改变边界的产品规则,不能直接从好友传递关系推出。
查看图表代码
群主与派生展示的更新时机
第一个成功提交加入的成员成为群主,顺序应来自服务端提交序号,不能比较客户端时间。群主退出时,在同一一致性边界内选择仍在群中的最早成员,避免两个并发退出操作分别选出不同群主。人数为零时是销毁、关闭还是保留空群,需要另行确定。
头像拼图与默认群名是成员状态的派生展示,可在成员变更提交后异步刷新;失败时保留旧展示并重试,不应回滚已完成的入群。若产品决定创建后固定头像,则明确不跟随退群变化。原稿中的人数阈值和实名要求是历史问题,本页不将其确认为现行规则。
查看图表代码
继续阅读
- 库存边界实践
- 模块与交互决策
- 架构取舍与原文