gpt4 book ai didi

node.js - extraHeaders 在 socket.io-client 中不起作用

转载 作者:行者123 更新时间:2023-12-02 20:11:42 26 4
gpt4 key购买 nike

您好,我的代码在 nodejs 中看起来像这样,它可以工作!

但是当我尝试在 nwjs 应用程序中使用完全相同的代码时,它没有!因为正如我嗅探和看到它认为它在网络浏览器下运行并且它试图使用 nwjs 的 Chrome 浏览器的 native 功能。

function connecttest(domain)
{
socket = require('socket.io-client')('https://ws.'+domain.replace('www.').replace('m.'),{
forceNode:true,
transports: ['websocket'],
extraHeaders: {
'Origin': 'https://www.'+domain.replace('www.').replace('m.')
},
transportOptions: {
polling: {
extraHeaders: {
'Origin': 'https://www.'+domain.replace('www.').replace('m.')
}
}
}
});
socket.on('connect', function(socket){
console.log("ok");
socket.emit('query', {"body":{"siteId":"9","source":1,"lang":"tr"},"action":"site.session","frontEndId":0,"token":null});
socket.on('response', function(data){
console.log(data);
});

});
}

fiddler sniff 😒

如您所见,它无法设置正确的原始 header

but

但它在普通的 nodejs 脚本下工作

最佳答案

也许是你的 transports: ['websocket']。看这里,在 official documentation :

With extraHeaders

This only works if polling transport is enabled(which is the default). Custom headers will not be appended when usingwebsocket as the transport. This happens because the WebSockethandshake does not honor custom headers. (For background see theWebSocket protocol RFC)

关于node.js - extraHeaders 在 socket.io-client 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53440246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com