Snapshots
This commit is contained in:
1 parent
e91125801d
commit
6368221937
75 files changed
+8943
-4332
No files matched your search
+10
-12
@@ -7,10 +7,9 @@ const { createServer, STATUS_CODES } = require('http');
|
||||
const PerMessageDeflate = require('./permessage-deflate');
|
||||
const WebSocket = require('./websocket');
|
||||
const { format, parse } = require('./extension');
|
||||
const { GUID } = require('./constants');
|
||||
const { GUID, kWebSocket } = require('./constants');
|
||||
|
||||
const keyRegex = /^[+/0-9A-Za-z]{22}==$/;
|
||||
const kUsedByWebSocketServer = Symbol('kUsedByWebSocketServer');
|
||||
|
||||
/**
|
||||
* Class representing a WebSocket server.
|
||||
@@ -79,13 +78,6 @@ class WebSocketServer extends EventEmitter {
|
||||
callback
|
||||
);
|
||||
} else if (options.server) {
|
||||
if (options.server[kUsedByWebSocketServer]) {
|
||||
throw new Error(
|
||||
'The HTTP/S server is already being used by another WebSocket server'
|
||||
);
|
||||
}
|
||||
|
||||
options.server[kUsedByWebSocketServer] = true;
|
||||
this._server = options.server;
|
||||
}
|
||||
|
||||
@@ -153,8 +145,6 @@ class WebSocketServer extends EventEmitter {
|
||||
server.close(() => this.emit('close'));
|
||||
return;
|
||||
}
|
||||
|
||||
delete server[kUsedByWebSocketServer];
|
||||
}
|
||||
|
||||
process.nextTick(emitClose, this);
|
||||
@@ -264,6 +254,7 @@ class WebSocketServer extends EventEmitter {
|
||||
* @param {net.Socket} socket The network socket between the server and client
|
||||
* @param {Buffer} head The first packet of the upgraded stream
|
||||
* @param {Function} cb Callback
|
||||
* @throws {Error} If called more than once with the same socket
|
||||
* @private
|
||||
*/
|
||||
completeUpgrade(key, extensions, req, socket, head, cb) {
|
||||
@@ -272,6 +263,13 @@ class WebSocketServer extends EventEmitter {
|
||||
//
|
||||
if (!socket.readable || !socket.writable) return socket.destroy();
|
||||
|
||||
if (socket[kWebSocket]) {
|
||||
throw new Error(
|
||||
'server.handleUpgrade() was called more than once with the same ' +
|
||||
'socket, possibly due to a misconfiguration'
|
||||
);
|
||||
}
|
||||
|
||||
const digest = createHash('sha1')
|
||||
.update(key + GUID)
|
||||
.digest('base64');
|
||||
@@ -386,7 +384,7 @@ function abortHandshake(socket, code, message, headers) {
|
||||
message = message || STATUS_CODES[code];
|
||||
headers = {
|
||||
Connection: 'close',
|
||||
'Content-type': 'text/html',
|
||||
'Content-Type': 'text/html',
|
||||
'Content-Length': Buffer.byteLength(message),
|
||||
...headers
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user