Ary*_*ame 3 node.js socket.io nwjs
嗨,我的代码在 Nodejs 中看起来像这样,它有效!
但是当我尝试在 nwjs 应用程序中使用完全相同的代码时,却没有!因为当我嗅探并看到它认为它在网络浏览器下运行并且它尝试使用 nwjs 的 chromium 浏览器的本机功能时。
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);
});
});
}
Run Code Online (Sandbox Code Playgroud)
如您所见,它无法设置正确的原始标头
但它可以在普通的nodejs脚本下工作
也许是你的transports: ['websocket']。看这里,官方文档:
带有额外的标题
polling仅当启用传输(这是默认设置)时,此功能才有效。websocket用作传输时不会附加自定义标头 。发生这种情况是因为 WebSocket 握手不支持自定义标头。(有关背景信息,请参阅 WebSocket 协议 RFC)
| 归档时间: |
|
| 查看次数: |
8246 次 |
| 最近记录: |