Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor\u lastSessionId对于同一选项卡总是不同的_Session_Meteor - Fatal编程技术网

Meteor\u lastSessionId对于同一选项卡总是不同的

Meteor\u lastSessionId对于同一选项卡总是不同的,session,meteor,Session,Meteor,我正在经历一件有点奇怪的事情,我无法理解它的头绪。。。我使用Meteor将sessionId从客户端发送到服务器,但是每次刷新页面时,我得到的sessionId都不一样,这不应该是,对吗 客户端 Meteor.call('logSession', Meteor.default_connection._lastSessionId); 服务器 Meteor.methods({ logSession: function(sid) { console.log(sid);

我正在经历一件有点奇怪的事情,我无法理解它的头绪。。。我使用Meteor将sessionId从客户端发送到服务器,但是每次刷新页面时,我得到的sessionId都不一样,这不应该是,对吗

客户端

Meteor.call('logSession', Meteor.default_connection._lastSessionId);
服务器

 Meteor.methods({
    logSession: function(sid) {
      console.log(sid);
    }
  })
sid总是不同的原因是什么


谢谢

为客户端和服务器之间的每个websocket会话创建
\u lastSessionId
。它在服务器端表示websocket的会话和状态,而不是cookie或持久性的东西

刷新/打开其他选项卡时,将创建一个新的websocket,这就是会话id不同的原因

每个会话ID表示客户端在服务器上的数据状态。这意味着服务器根据订阅情况“知道”客户端在每个会话上有哪些数据,以便知道要发送什么&如果某个特定选项卡发生更改,则要更改什么

刷新页面时,您使用的是新状态,因此Meteor不会尝试使用以前的会话id重新连接并恢复以前的状态,因为在订阅方面不需要恢复以前的状态,因为用户希望页面是新的

如果您想使用cookie等选项卡上提供的某种形式的持久性,请改用
localStorage

localStorage.setItem("foo", "bar");

console.log( localStorage.getItem("foo") );
=> "bar"

谢谢你的解释!