socket-function 0.52.0 → 0.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/callManager.ts +5 -0
- package/src/webSocketServer.ts +8 -9
package/package.json
CHANGED
package/src/callManager.ts
CHANGED
|
@@ -167,7 +167,12 @@ export const runServerHooks = measureWrap(async function runServerHooks(
|
|
|
167
167
|
): Promise<HookContext> {
|
|
168
168
|
let hookContext: HookContext = { call: callType, onResult: [] };
|
|
169
169
|
for (let hook of globalHooks.concat(hooks.hooks || [])) {
|
|
170
|
+
let time = Date.now();
|
|
170
171
|
await _setSocketContext(caller, () => hook(hookContext));
|
|
172
|
+
time = Date.now() - time;
|
|
173
|
+
if (time > 100) {
|
|
174
|
+
console.warn(`Slow (${formatTime(time)}) server hook: ${JSON.stringify(hook.name || hook.toString().slice(0, 100))} for ${callType.classGuid}.${callType.functionName}(...)`);
|
|
175
|
+
}
|
|
171
176
|
// NOTE: See HookContext.overrideResult for why we don't break here
|
|
172
177
|
}
|
|
173
178
|
return hookContext;
|
package/src/webSocketServer.ts
CHANGED
|
@@ -75,6 +75,7 @@ export async function startSocketServer(
|
|
|
75
75
|
ca: getTrustedCertificates(),
|
|
76
76
|
// Attempt to disable sessions, because they make SNI significantly harder to parse.
|
|
77
77
|
secureOptions: require("node:constants").SSL_OP_NO_TICKET,
|
|
78
|
+
keepAlive: false,
|
|
78
79
|
};
|
|
79
80
|
if (!httpsServerLast) {
|
|
80
81
|
httpsServerLast = https.createServer(lastOptions);
|
|
@@ -99,17 +100,18 @@ export async function startSocketServer(
|
|
|
99
100
|
});
|
|
100
101
|
|
|
101
102
|
httpsServer.on("connection", socket => {
|
|
103
|
+
let debug = (socket as any).remoteAddress + ":" + (socket as any).remotePort;
|
|
102
104
|
if (!SocketFunction.silent) {
|
|
103
|
-
console.log(
|
|
105
|
+
console.log(`HTTP server connection established ${debug}`);
|
|
104
106
|
}
|
|
105
107
|
socket.on("error", e => {
|
|
106
108
|
if (!SocketFunction.silent) {
|
|
107
|
-
console.log(`
|
|
109
|
+
console.log(`HTTP server socket error for ${debug}, ${e.message}`);
|
|
108
110
|
}
|
|
109
111
|
});
|
|
110
112
|
socket.on("close", () => {
|
|
111
113
|
if (!SocketFunction.silent) {
|
|
112
|
-
console.log(
|
|
114
|
+
console.log(`HTTP server socket closed for ${debug}`);
|
|
113
115
|
}
|
|
114
116
|
});
|
|
115
117
|
});
|
|
@@ -127,12 +129,6 @@ export async function startSocketServer(
|
|
|
127
129
|
httpsServer.on("request", httpCallHandler);
|
|
128
130
|
|
|
129
131
|
httpsServer.on("upgrade", (request, socket, upgradeHead) => {
|
|
130
|
-
socket.on("error", e => {
|
|
131
|
-
if (!SocketFunction.silent) {
|
|
132
|
-
console.log(`Client socket error ${e.message}`);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
|
|
136
132
|
let originHeader = request.headers["origin"];
|
|
137
133
|
if (originHeader) {
|
|
138
134
|
try {
|
|
@@ -192,6 +188,9 @@ export async function startSocketServer(
|
|
|
192
188
|
//console.log("Received TCP connection from " + socket.remoteAddress);
|
|
193
189
|
const remoteAddress = socket.remoteAddress;
|
|
194
190
|
function handleTLSHello(buffer: Buffer, packetCount: number): void | "more" {
|
|
191
|
+
if (!SocketFunction.silent) {
|
|
192
|
+
console.log(`Received TCP header packet from ${remoteAddress}, have ${buffer.length} bytes so far, ${packetCount} packets`);
|
|
193
|
+
}
|
|
195
194
|
// All HTTPS requests start with 22, and no HTTP requests start with 22,
|
|
196
195
|
// so we just need to read the first byte.
|
|
197
196
|
let server: https.Server | http.Server;
|