我们正在开发一个包含三个组件的 WebRTC 应用程序:
这可以在医疗保健应用程序的玻璃设备和 Web 应用程序之间实现双向通信。其中一项要求允许具有最高角色的管理员跨组织编辑任何用户的用户名。
作为后端开发人员,我发现这个要求很奇怪,因为我没有遇到过任何这样的应用程序。为了实现呼叫功能,我们使用内存映射
username
-> socketId
作为一个/许多组织的试点版本。
在两个用户都在通话并且管理员有意或无意地更改任何一方的用户名但服务器只有在用户名与之前的 PING 事件相同时才能更新套接字的情况下会出现问题客户端。 (我们正在使用 socket.io):
我愿意重构代码以将套接字映射到
userId -> socketId
,但最终这将存储在数据库中,并进行不必要的 R/W 操作。
无论用户的角色如何,用户名都应该是不可编辑的。
解决这个问题的最佳方法是什么?
您可以按如下方式安排用户名更改:
这样,用户名和内存中的映射将一直有效,直到用户完成他/她的活动,除非管理员选择立即执行更改或最长等待时间已过。