【问题标题】:Socket IO doesn't send and receive cookiesSocket IO 不发送和接收 cookie
【发布时间】:2019-08-11 09:05:37
【问题描述】:

我在开发环境中的应用架构如下: 运行在 3000 端口的 Web 服务器, 运行在 3001 端口的 API 服务器, Socket io 服务器在 3002 端口上运行。

我像这样连接到客户端的socket io服务器:

const socket = io('http://127.0.0.1:3002/bitcoin');

这是我在套接字 io 服务器上的连接事件:

// www

const io = require('./controllers/socket_io');

io.listen(3002);

// controllers/socket_io.js

const io = require('socket.io')();

const Bitcoin_Socket_IO_C = require('./bitcoin/socket_io');

io.of('/bitcoin').on('connection', socket => Bitcoin_Socket_IO_C.connect(socket));

module.exports = io;

// controllers/bitcoin/socket_io.js

class Bitcoin_Socket_IO_Controller{
    static async connect(socket){
        console.log(socket);
    };
};

module.exports = Bitcoin_Socket_IO_Controller;

我的 io 服务器看到了连接,但从不发回 io cookie。 我的 api 也可以设置身份验证 cookie,我想在我的套接字 io 握手中看到这些,但它们也不会去那里。

这里有什么问题?

【问题讨论】:

    标签: node.js sockets io socket.io


    【解决方案1】:

    我解决了。当我通过 localhost 访问我的 Web 服务器时,所有 cookie 都设置为该域。我的客户的 io 连接到 127.0.0.1,所以没有 cookie 被发送到那里。

    【讨论】: