mirror of
https://github.com/avwo/whistle.git
synced 2026-10-28 22:59:50 +08:00
refactor: refine resDelay
This commit is contained in:
+24
-27
@@ -133,8 +133,8 @@ function resolveWebsocket(socket, wss) {
|
||||
socket.write(rawData);
|
||||
execCallback(null, socket);
|
||||
};
|
||||
var reqDelay = util.getMatcherValue(_rules.reqDelay) | 0;
|
||||
var resDelay = util.getMatcherValue(_rules.resDelay) | 0;
|
||||
var reqDelay = util.getMatcherValue(_rules.reqDelay) || 0;
|
||||
var resDelay = util.getMatcherValue(_rules.resDelay) || 0;
|
||||
var delay = reqDelay + resDelay;
|
||||
if (delay > 0) {
|
||||
clearTimeout(timeout);
|
||||
@@ -516,12 +516,7 @@ function resolveWebsocket(socket, wss) {
|
||||
reqSocket.write(socket.getBuffer(headers, options.path));
|
||||
reqSocket.resume();
|
||||
delete headers[config.HTTPS_FIELD];
|
||||
var resDelay = util.getMatcherValue(_rules.resDelay);
|
||||
if (resDelay > 0) {
|
||||
setTimeout(_pipeData, resDelay);
|
||||
} else {
|
||||
_pipeData();
|
||||
}
|
||||
_pipeData();
|
||||
}
|
||||
|
||||
function setupSocket(cb) {
|
||||
@@ -608,26 +603,28 @@ function resolveWebsocket(socket, wss) {
|
||||
socket.resHeaders = res.headers;
|
||||
var curResHeaders = reqSocket.headers = res.headers;
|
||||
getResRules(socket, res, function() {
|
||||
reqSocket.reqId = data.id;
|
||||
var code = curStatus || res.statusCode;
|
||||
socket.statusCode = res.statusCode = code;
|
||||
if (code == 101) {
|
||||
socket.write(res.getHeaders(curResHeaders, curStatus));
|
||||
if (res.bodyBuffer.length) {
|
||||
reqSocket.unshift(res.bodyBuffer);
|
||||
util.delay(util.getMatcherValue(_rules.resDelay), function() {
|
||||
reqSocket.reqId = data.id;
|
||||
var code = curStatus || res.statusCode;
|
||||
socket.statusCode = res.statusCode = code;
|
||||
if (code == 101) {
|
||||
socket.write(res.getHeaders(curResHeaders, curStatus));
|
||||
if (res.bodyBuffer.length) {
|
||||
reqSocket.unshift(res.bodyBuffer);
|
||||
}
|
||||
socketMgr.handleUpgrade(socket, reqSocket);
|
||||
resData.body = '';
|
||||
} else {
|
||||
socket.write(res.getBuffer(curResHeaders, curStatus));
|
||||
reqSocket.resume();
|
||||
resData.body = res.body;
|
||||
}
|
||||
socketMgr.handleUpgrade(socket, reqSocket);
|
||||
resData.body = '';
|
||||
} else {
|
||||
socket.write(res.getBuffer(curResHeaders, curStatus));
|
||||
reqSocket.resume();
|
||||
resData.body = res.body;
|
||||
}
|
||||
resData.headers = curResHeaders;
|
||||
resData.rawHeaderNames = res.rawHeaderNames;
|
||||
resData.statusCode = code;
|
||||
reqEmitter.emit('response', data);
|
||||
execCallback(null, reqSocket);
|
||||
resData.headers = curResHeaders;
|
||||
resData.rawHeaderNames = res.rawHeaderNames;
|
||||
resData.statusCode = code;
|
||||
reqEmitter.emit('response', data);
|
||||
execCallback(null, reqSocket);
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user