简体   繁体   English

如何修复 Node js 中的错误 Invalid Sec-WebSocket-Accept 标头?

[英]How can I fix the Error Invalid Sec-WebSocket-Accept header in Node js?

I am trying to create client websocket in node js.我正在尝试在节点 js 中创建客户端 websocket。 The websocket server is running in the browser(firefox). websocket 服务器在浏览器(firefox)中运行。 code and error message are below.代码和错误信息如下。 It isn't working in Nodejs while it's working in the browser.当它在浏览器中工作时,它在 Nodejs 中不起作用。 what's the reason for this?这是什么原因? how can i solve?我该如何解决?

Code(Node JS):代码(节点JS):

    const WebSocket = require('ws');
    const { randomBytes } = require('crypto');
        const headers = {
          Accept: '*/*',
          'Accept-Encoding': 'gzip, deflate, br',
          'Accept-Language': 'q=0.8,en-US',
          'Cache-Control': 'no-cache',
          Connection: 'keep-alive, Upgrade',
          cookie: 'key=UE2BQmTF;',
          Pragma: 'no-cache',
          'Sec-WebSocket-Extensions': 'permessage-deflate',
          'sec-websocket-key': randomBytes(16).toString('base64'),
          'Sec-WebSocket-Version': '13',
          Upgrade: 'websocket',
          'User-Agent':
            'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0',
        };
 ws = new WebSocket(wurl, { headers });
  ws.binaryType = 'arraybuffer';
  ws.on('open', () => {
    console.log('connected', Date());
 });

  ws.on('close', () => {
    console.log('disconnected', Date());
  });

Error:错误:

Error: Invalid Sec-WebSocket-Accept header
2020-01-25T14:51:57.930773+00:00 app[web.1]: at ClientRequest.<anonymous> (/app/node_modules/ws/lib/websocket.js:603:7)
2020-01-25T14:51:57.930775+00:00 app[web.1]: at ClientRequest.emit (events.js:223:5)
2020-01-25T14:51:57.930778+00:00 app[web.1]: at TLSSocket.socketOnData (_http_client.js:490:11)
2020-01-25T14:51:57.930780+00:00 app[web.1]: at TLSSocket.emit (events.js:223:5)
2020-01-25T14:51:57.930782+00:00 app[web.1]: at addChunk (_stream_readable.js:309:12)
2020-01-25T14:51:57.930785+00:00 app[web.1]: at readableAddChunk (_stream_readable.js:290:11)
2020-01-25T14:51:57.930787+00:00 app[web.1]: at TLSSocket.Readable.push (_stream_readable.js:224:10)
2020-01-25T14:51:57.930789+00:00 app[web.1]: at TLSWrap.onStreamRead (internal/stream_base_commons.js:181:23)
2020-01-25T14:51:57.930791+00:00 app[web.1]: Emitted 'error' event on WebSocket instance at:
2020-01-25T14:51:57.930793+00:00 app[web.1]: at Object.onceWrapper (events.js:313:26)
2020-01-25T14:51:57.930795+00:00 app[web.1]: at TLSSocket.emit (events.js:223:5)
2020-01-25T14:51:57.930797+00:00 app[web.1]: at emitErrorNT (internal/streams/destroy.js:92:8)
2020-01-25T14:51:57.930799+00:00 app[web.1]: at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
2020-01-25T14:51:57.930801+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:81:21)

'sec-websocket-key' 由 ws sec-websocket-key自动生成

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我无法连接到我的 websocket,因为它的握手 Sec-WebSocket-Accept 标头值不正确 - I can't connect to my websocket because its handshake Sec-WebSocket-Accept header value is incorrect 如何让我的服务器返回正确的Sec-WebSocket-Accept标头值? - How do I get my server to return the right Sec-WebSocket-Accept header value? Websocket 握手 Sec-WebSocket-Accept 标头值不正确 - Websocket handshake Sec-WebSocket-Accept header value is incorrect WebSocket握手期间出错:PHP的“Sec-WebSocket-Accept”标头值不正确 - Error during WebSocket handshake: Incorrect 'Sec-WebSocket-Accept' header value with PHP Sec-WebSocket-接受不匹配 - Sec-WebSocket-Accept mismatch Sec-WebSocket-Accept与KinectJS不匹配 - Sec-WebSocket-Accept mismatch with KinectJS 如何使用node.js在Twilio中修复无效的内容类型标头? - How do I fix an invalid content-type header in Twilio using node.js? 如何修复此“缺少模块”错误(node.js/discord.js)? - How can I fix this "missing module" error (node.js/discord.js)? 为什么在节点中运行的.js文件中遇到foreach未定义错误,我该如何解决? - Why am I encountering a foreach undefined error in this .js file running in node.. and how can I fix it? 如何修复 Google OAuth 401 错误无效客户端? - How can I fix the Google OAuth 401 Error invalid client?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM