我在localhost上写了两个应用程序,不希望它们共享某些信息(可能在会话中)。
我想知道我是否可以打开两个端口?会话存储端口是否具体?
答案 0 :(得分:2)
我想知道我是否可以打开两个端口?
是的,你通过启动两个服务器来监听两个端口,每个端口一个。
会话存储端口是否具体?
是和否。这取决于会话的配置方式。
Cookie不是特定于端口的,因此会话cookie本身会在同一主机上的两台服务器之间共享,但会有不同的端口。
因此,如果您想在同一主机上的两个单独的Web服务器上使用两个快速会话实例,但是要使用单独的会话使用单独的端口,则可以初始化快速会话以为每个会话使用单独的cookie(通过指定每个不同的cookie名称)并初始化两个单独的快递会话实例,然后两个会话将完全分开。
以下是一个例子:
const express = require('express');
const session = require('express-session');
// configure first server and session middleware
const app1 = express();
app1.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: true },
name: 'session1'
}));
app1.listen(8080);
// configure second server and separate session middleware/session cookie
const app2 = express();
app2.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: true },
name: 'session2'
}));
app2.listen(8081);
而且,如果您为会话指定了特定的存储介质,则需要确保将这些介质初始化为单独的存储位置。