gpt4 book ai didi

javascript - 在 Meteor 集合中具有一致的客户端 session ID

转载 作者:行者123 更新时间:2023-11-30 12:50:17 26 4
gpt4 key购买 nike

当一个新的客户端连接到服务器时,服务器将包含客户端的 Meteor.default_connection._lastSessionId 的记录作为 uuid 字段插入到名为 的集合中事件

然而,每当服务器重置时,客户端都会分配一个新的 Meteor.default_connection._lastSessionId,而包含先前 _lastSessionId 的记录仍保留在集合中。

问题:我们如何检测重连事件,并用新记录更新包含旧 _lastSessionId 的记录?

或者我们能否以某种方式阻止 _lastSessionId 发生变化?

client/main.js

Meteor.startup(function() {
Meteor.call('active', Meteor.default_connection._lastSessionId)
})

server/main.js

Meteor.methods({
'active': function(uuid) {
Active.insert({'uuid': uuid})
}
})

最佳答案

您无法阻止 lastSessionId 更改,因为服务器需要有现有 session 的记录才能重新连接到它。在热代码重新加载的情况下, session 将被清除,因此它将为客户端分配一个新的 session ID。

您可以做的是将新 session 存储为一个全新的 session ,或者在连接后立即保留第一个 session ID:

Meteor.startup(function() {
Meteor.onConnection(function() {
if(Session.equals("session_id", null)) Session.set("session_id", Meteor.default_connection._lastSessionId);
});
Meteor.call('active', Session.get("session_id"));
});

所以这应该在客户端上的热代码推送中幸存下来,(因为 Session 变量被保留)。对于服务器有热代码重启的情况,先前的 session_id 将用于将内容插入到您的日志中。

关于javascript - 在 Meteor 集合中具有一致的客户端 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21201883/

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