我构建了一个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!")
})
})()
答案 0 :(得分:0)
const ws = new WebSocket('ws://www.host.com/path', {
headers: {
Cookie: 'foo=bar; baz=qux'
}
});