连接socket.io时如何设置自定义请求标头使用js客户端
我也需要那个......你找到任何解决方案了吗?
我也对此感兴趣。
我已经看到了如何在 Java socket.io-client 上做到这一点,但在 JS 上没有看到
不适用于所有传输方法。
如果您使用 XHR/Ajax 轮询,这是可能的,但对于 HTML5 上的WebSockets
不行。
http://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-apic
我正在寻找解决方案。
你想达到什么目的? 你不能使用url参数吗?
我正在尝试编写一个测试来验证是否可以在身份验证中间件之前和之后窃听 websockets。
然而,为了成功进行身份验证,我需要发送一个 cookie 会话以及初始 http 升级请求。 它可以在浏览器中使用,我只是希望它也可以在我的节点测试中使用。
这方面有进展吗? 或任何提示如何在 socket.io 中获取/设置 cookie-session / sessionId?
我真的让它工作了。 初始 http 握手的详细信息可在socket.request
。 在那里,您会找到会话。 例如,使用 socket.io 中间件:
io.use(function(socket, next){
if (!socket.request.session){
console.log('no session in socket')
socket.disconnect();
}
next();
});
从版本2.0.0
,您现在可以使用extraHeaders
选项设置请求标头:
const socket = io({
transportOptions: {
polling: {
extraHeaders: {
'x-clientid': 'abc'
}
}
}
});
如何在此示例中添加 url
常量套接字 = io({
运输选项:{
轮询:{
额外标题:{
'x-clientid': 'abc'
}
}
}
});
@muhammadnasr传递第二个参数中的选项,第一个是 url:
const socket = io("/your-url-here", {
transportOptions: {
polling: {
extraHeaders: {
'x-clientid': 'abc'
}
}
}
});
那太棒了。
您是否有为 iOS 和 Android SDK 设置标头的示例代码?
非常感谢。
安卓: https :
标题可以动态设置吗?
最有用的评论
@muhammadnasr传递第二个参数中的选项,第一个是 url: