• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const common = require('../common');
4const assert = require('assert');
5const http = require('http');
6
7const server = http.createServer();
8
9server.on('upgrade', common.mustCall((request, socket) => {
10  assert.strictEqual(socket.parser, null);
11  socket.write([
12    'HTTP/1.1 101 Switching Protocols',
13    'Connection: Upgrade',
14    'Upgrade: WebSocket',
15    '\r\n',
16  ].join('\r\n'));
17}));
18
19server.listen(common.mustCall(() => {
20  const request = http.get({
21    port: server.address().port,
22    headers: {
23      Connection: 'Upgrade',
24      Upgrade: 'WebSocket'
25    }
26  });
27
28  request.on('upgrade', common.mustCall((response, socket) => {
29    assert.strictEqual(socket.parser, null);
30    socket.destroy();
31    server.close();
32  }));
33}));
34