如何开发匿名聊天功能

最近有客户想要在公司内部聊天软件上实现匿名模式,就跟客户头脑风暴了一下,有些想法整理下来可能对大家有所帮助,在这里记录一下。

1. 什么是匿名模式

匿名模式就是在特定的时间内开启,群中所有人都以匿名的身份进行聊天。一般都是在公司群内进行,这样能够让员工更能勇敢地敞开心扉,让公司领导更直接得获取到一线员工真实心声。

2. 匿名模式的开启

群信息有个extra字段,可以在extra字段添加标示是否开启匿名模式(extra最好使用json格式,方便以后添加更多字段)。当进入群组后,检查这个字段是否开启。如果是进入群组后再开启,也可以收到群组信息更新通知,重新获取群组信息,检查是否开启匿名模式。群主或者群管理员可以更改这个extra信息。

3. 匿名身份的获取

可以收集一批头像和名称。比如可以用水浒108将的名称作为匿名身份池,如果公司比较大,就需要找更多头像和名称。当匿名模式开启后,每个人都需要来应用服务来申领身份。注意避免同一个身份分给多个人就可以了。

4. 匿名发言

匿名模式下,当申请到身份后,可以在UI界面显示当前处于匿名状态。发言时,需要在extra字段添加两个信息,一个信息标示是匿名信息,另外一个是当前用户的匿名身份信息。每个人只知道自己的匿名身份,发出的消息都带上自己的匿名身份信息。

5. 匿名消息显示

消息显示时,检查extra判断是否匿名消息,如果是匿名消息,就使用消息extra中的匿名身份,这样就无法显示出真实身份。另外UI交互也需要处理一下,比如点击头像不能打开真实用户信息。长按头像@显示匿名名称等。

6. 匿名模式的关闭

当关闭匿名模式时,通知应用服务,把发放出去的匿名身份放回池子中去。客户端也要清除当前保存的匿名身份信息等。一切恢复正常。

7. 最后

上面只是大概的思路,实现时可能有更多的细节需要打磨,应该就可以打磨出比较好用的匿名模式。另外就是这不是真正的匿名,从后台数据库中很容易查出来谁发了什么,所以各位吐槽时一定要注意分寸[手动狗头]。

8. 补充

如果要真匿名怎么做:可以用过server api做,客户端发送消息时调用应用服务(不能通过客户端SDK发送),应用服务用server api以一个匿名的身份来发送。可以建立真实身份与匿名身份映射,在匿名模式关闭时清除映射关系,或者每次都以一个随机的身份发送。注意日志可能会暴露真实用户与匿名用户之间的映射,需要仔细抹除所有可能的痕迹。

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2021-03-19 22:19:38

results matching ""

    No results matching ""