阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js http ClientRequest upgrade 事件

      Node.js http ClientRequest upgrade 事件

      新增于: v0.1.94

      • response < http.IncomingMessage>
      • socket < net.Socket>
      • head < Buffer>

      每次服务器响应升级请求时发出。 如果未监听此事件且响应状态码为 101 Switching Protocols,则接收升级响应头的客户端将关闭其连接。

      客户端服务器对,演示如何监听 ‘upgrade’ 事件。

      const http = require('http');
      
      // 创建 HTTP 服务器。
      const srv = http.createServer( (req, res) => {
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('响应内容');
      });
      srv.on('upgrade', (req, socket, head) => {
        socket.write('HTTP/1.1 101 Web Socket Protocol Handshake\r\n' +
                     'Upgrade: WebSocket\r\n' +
                     'Connection: Upgrade\r\n' +
                     '\r\n');
      
        socket.pipe(socket);
      });
      
      // 服务器正在运行。
      srv.listen(1337, '127.0.0.1', () => {
      
        // 发送请求。
        const options = {
          port: 1337,
          host: '127.0.0.1',
          headers: {
            'Connection': 'Upgrade',
            'Upgrade': 'websocket'
          }
        };
      
        const req = http.request(options);
        req.end();
      
        req.on('upgrade', (res, socket, upgradeHead) => {
          console.log('接收到响应');
          socket.end();
          process.exit(0);
        });
      });
      

      更多内容请参考:Node.js HTTP,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录