gpt4 book ai didi

javascript - 聊天应用程序如何为特定聊天生成 id?

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:22 24 4
gpt4 key购买 nike

假设我有两个用户,“Matt”和“Kevin”。马特想要向凯文发送消息,通过单击聊天按钮向凯文发送直接消息,聊天框启动,他发送消息,凯文收到消息。

我通过将发送者 (Matt) 和接收者 (Kevin) 连接成一个 ID 来生成聊天 ID。

var me = "Matt";
var user = "Kevin";
var uniqueChatID = me+user;

当我保存消息服务器端(使用 mongoDB)时,消息对象的 chatIDMattKevin。因此,现在当我想返回该聊天时,我可以使用 MattKevinchatID 提取所有消息。

这工作正常,直到 Kevin 想要启动与 Matt 的聊天,然后 id 变为 KevinMatt。现在我引用的是另一个聊天,它是倒退的。因此,如果我想传递 uniqueChatID 来获取消息,它将提取不同的集合。

var me = "Kevin";
var user = "Matt";
var uniqueChatID = me+user;

所以我很好奇如何设置得更好一点,以便我的程序知道,好吧,马特和凯文聊天,所以如果马特向凯文发送消息,它就会拉入他们的聊天,反之亦然,凯文向马特发送消息,它会收到相同的消息?

最佳答案

按字母顺序对它们进行排序:

var me = "Kevin";
var user = "Matt";
var uniqueChatID = [me, user].sort().join('');
也就是说,虽然这在技术上可行,但我建议您做一些家务工作 - 确保它们始终为小写,并确保在您的数据库上强制执行唯一的用户名。或者,我什至建议为用户提供一个唯一标识符(例如 UUID)并使用 那个来创建 UCID:

var me = CurrentUser.uuid(); // 8cb3ebb8-30f9-11e5-a151-feff819cdc9f
var targetUser = Chat.targetUser(); // Matt: 9bc1ef9c-6719-4041-afd3-c5b87c90690d
var uniqueChatID = [me, targetUser].sort().join(',');
// 8cb3ebb8-30f9-11e5-a151-feff819cdc9f,9bc1ef9c-6719-4041-afd3-c5b87c90690d

最后,如果您的数据库支持关系或连接,则最好的选择是为每个聊天单独​​的聊天表/集合,并在用户和聊天之间“连接”(或创建关系)。然后,下次您加载它时,该连接将引导您进入与两个用户都连接的独特聊天。

关于javascript - 聊天应用程序如何为特定聊天生成 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31578596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com