WS握手中未传递Cookie头

时间:2020-01-04 11:16:15

标签: node.js cookies websocket header handshake

我构建了一个NodeJS脚本,该脚本使用httpServer模块创建一个http,并使用wsServer模块创建一个ws。它们被配置为在同一端口上。 HTTP服务器以Set-Cookie头作为响应。通过刷新页面,可以看到浏览器在HTTP请求中发送了cookie。我打开控制台并输入let socket = new WebSocket("ws://127.0.0.1")。它发送请求,我在服务器端接收到请求,我可以通过它进行通信,但cookie头未在握手中发送。我也尝试了本地IP。下面是服务器:

; (async () => {
    let ws = require("ws"), http = require("http")

    let httpServer = http.createServer((request, response) => {
        console.log("Received request")
        response.writeHead(200, {"Set-Cookie": "secret=1234567890"})
        response.end()
    })
    httpServer.listen(80, () => console.log("Server is listening"))

    let wsServer = new ws.Server({server: httpServer})
    wsServer.on("connection", conn => {
        conn.on("message", msg => {
            console.log("Received msg: " + msg)
        })
        conn.send("Hello!")
    })
})()    

1 个答案:

答案 0 :(得分:0)

const ws = new WebSocket('ws://www.host.com/path', {
  headers: {
    Cookie: 'foo=bar; baz=qux'
  }
});