我正在使用Reactjs开发前端。我需要连接到AWS Websocket。 Websocket的必需标头如下:
我决定使用socket.io客户端(socket.io-client)。为了建立连接,我尝试了以下代码结构:
const socket = io( URL, {
path: "/dev",
transports: ["false","websocket"],
transportOptions: {
extraHeaders: {
Authorization: "Bearer TOKEN",
terminalId: "ID DE TERMINAL"
}
},
});
socket.on("disconnect", () => {
console.log("socket disconnected");
});
我已经尝试将多余的标头从transportOption中发送出去,但是服务器日志继续显示该连接没有标头。
可能会发生什么? 是否有另一个允许附加标题的客户端?
PS:websocket在wscat中使用-H标志附加标头可以正常工作。
答案 0 :(得分:0)
在documentation中提到使用websocket
作为您似乎正在使用的传输方式时,不会附加自定义标头。
浏览器WebSocket似乎不支持设置自定义标头,因此您有两个选择。一种方法是将身份验证通过在套接字中传递的cookie。第二个是在后端处理