已关闭,此问题需要更focused,目前不接受回答。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
9天前关闭。
此帖子已于4天前编辑并提交审核,未能重新打开帖子:
原始关闭原因未解决
Improve this question
我们正在开发一个WebRTC应用程序,它有三个组件:
- android(辅助眼镜设备)
- server(nodejs backend)
- webapp(reactjs frontend)
这使得眼镜设备和医疗保健应用程序的网络应用程序之间能够进行双向通信。其中一个要求允许具有最高角色的管理员编辑跨组织的任何用户的用户名。
作为一个后端开发人员,我发现这个要求很奇怪,因为我没有遇到过任何这样的应用程序。为了实现调用功能,我们使用了一个内存Mapusername
-〉socketId
作为一个试点版本,用于一个/多个组织。
如果两个用户正在通话,管理员(有意或无意)更改了任何一方的用户名,但服务器只能在用户名与客户端上一个PING事件相同时才能更新套接字,则会出现问题。(我们使用的是socket.io):
1.断开连接的用户可能无法重新连接到他们先前的活动视频呼叫,如果他们的用户名被更改,因为服务器无法检查这一点。
1.由于存在UNIQUE约束,因此处理更新用户的代码是多余的。
我愿意重构代码,用userId -> socketId
Map套接字,但最终这将通过不必要的R/W操作存储在DB中。
无论用户的角色如何,用户名都应不可编辑。
为了解决细粒度地限制用户根据其相关角色更改用户名的问题,应该遵循哪些设计模式?
1条答案
按热度按时间ee7vknir1#
您可以按如下方式计划用户名更改:
这样,用户名和内存Map将一直工作到用户完成他/她的活动,除非管理员选择立即执行更改或最大等待时间过去。