Node.js 如何从io中设置或删除cookie.use

Node.js 如何从io中设置或删除cookie.use,node.js,express,socket.io,Node.js,Express,Socket.io,在socket.io的服务器对象中,使用方法可以访问Express'请求对象以及一个握手对象,为了方便起见,我将调用该对象。这些是只读对象吗 io.use(function(socket,next)) { var req = socket.request; //how do I delete or set a cookie here? next(); } 我想删除一个cookie。如何执行此操作?您可以从socket.io发出事件,客户端将设置/清除cookie: 服务器:

在socket.io的
服务器
对象中,
使用
方法可以访问Express'
请求
对象以及一个
握手
对象,为了方便起见,我将调用该对象。这些是只读对象吗

io.use(function(socket,next)) {
   var req = socket.request;
   //how do I delete or set a cookie here?
   next();
}

我想删除一个cookie。如何执行此操作?

您可以从socket.io发出事件,客户端将设置/清除cookie:

服务器:

const cookie = require('cookie');

let someCookie = cookie.serialize('foo', 'bar');
socket.emit('set_cookie', someCookie);
socket.emit('delete_cookie', 'foo');
客户:

socket.on('set_cookie', (cookie) => {
    document.cookie = cookie;
});
socket.on('delete_cookie', (cookie) => {
    document.cookie = cookie + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
});

好吧,你不能,因为那需要发送HTTP响应,而你不能从SocketIO连接发送HTTP响应。