node-opcua-transport 2.72.2 → 2.74.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/LICENSE +3 -1
- package/dist/source/HelloMessage.js +1 -1
- package/dist/source/HelloMessage.js.map +1 -1
- package/dist/source/client_tcp_transport.d.ts +15 -1
- package/dist/source/client_tcp_transport.js +15 -6
- package/dist/source/client_tcp_transport.js.map +1 -1
- package/dist/source/message_builder_base.d.ts +31 -0
- package/dist/source/message_builder_base.js +52 -37
- package/dist/source/message_builder_base.js.map +1 -1
- package/dist/source/server_tcp_transport.js +5 -5
- package/dist/source/server_tcp_transport.js.map +1 -1
- package/dist/source/tcp_transport.d.ts +17 -0
- package/dist/source/tcp_transport.js +8 -18
- package/dist/source/tcp_transport.js.map +1 -1
- package/package.json +15 -15
- package/source/HelloMessage.ts +1 -1
- package/source/client_tcp_transport.ts +39 -7
- package/source/message_builder_base.ts +96 -44
- package/source/server_tcp_transport.ts +12 -8
- package/source/tcp_transport.ts +27 -21
package/LICENSE
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
The MIT License (MIT)
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2022 Sterfive SAS - 833264583 RCS ORLEANS - France (https://www.sterfive.com)
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2014-2022 Etienne Rossignon
|
|
4
6
|
|
|
5
7
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
8
|
this software and associated documentation files (the "Software"), to deal in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelloMessage.js","sourceRoot":"","sources":["../../source/HelloMessage.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,mEAAsH;AAEtH,2DAO4B;AAE5B,MAAM,kBAAkB,GAAyB,IAAA,wCAAmB,EAAC;IACjE,IAAI,EAAE,cAAc;IAEpB,QAAQ,EAAE,cAAc;IAExB,MAAM,EAAE;QACJ;YACI,IAAI,EAAE,iBAAiB;YAEvB,SAAS,EAAE,QAAQ;YAEnB,aAAa,EAAE,uEAAuE;SACzF;QACD;YACI,IAAI,EAAE,mBAAmB;YAEzB,SAAS,EAAE,QAAQ;YAEnB,aAAa,EAAE,kDAAkD;SACpE;QACD;YACI,IAAI,EAAE,gBAAgB;YAEtB,SAAS,EAAE,QAAQ;YAEnB,aAAa,EAAE,gDAAgD;SAClE;QACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,4CAA4C,EAAE;QAC5G;YACI,IAAI,EAAE,eAAe;YAErB,SAAS,EAAE,QAAQ;YAEnB,aAAa,EAAE,sDAAsD;SACxE;QACD;YACI,IAAI,EAAE,aAAa;YAEnB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"HelloMessage.js","sourceRoot":"","sources":["../../source/HelloMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,23 @@ export interface ClientTCP_transport {
|
|
|
7
7
|
on(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
|
|
8
8
|
on(eventName: "close", eventHandler: (err: Error | null) => void): this;
|
|
9
9
|
on(eventName: "connection_break", eventHandler: () => void): this;
|
|
10
|
+
on(eventName: "connect", eventHandler: () => void): this;
|
|
10
11
|
once(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
|
|
11
12
|
once(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
|
|
12
13
|
once(eventName: "close", eventHandler: (err: Error | null) => void): this;
|
|
13
14
|
once(eventName: "connection_break", eventHandler: () => void): this;
|
|
15
|
+
once(eventName: "connect", eventHandler: () => void): this;
|
|
16
|
+
emit(eventName: "chunk", messageChunk: Buffer): boolean;
|
|
17
|
+
emit(eventName: "socket_closed", err?: Error | null): boolean;
|
|
18
|
+
emit(eventName: "close", err?: Error | null): boolean;
|
|
19
|
+
emit(eventName: "connection_break"): boolean;
|
|
20
|
+
emit(eventName: "connect"): boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface TransportSettingsOptions {
|
|
23
|
+
maxChunkCount?: number;
|
|
24
|
+
maxMessageSize?: number;
|
|
25
|
+
receiveBufferSize?: number;
|
|
26
|
+
sendBufferSize?: number;
|
|
14
27
|
}
|
|
15
28
|
/**
|
|
16
29
|
* a ClientTCP_transport connects to a remote server socket and
|
|
@@ -61,7 +74,8 @@ export declare class ClientTCP_transport extends TCP_transport {
|
|
|
61
74
|
parameters?: AcknowledgeMessage;
|
|
62
75
|
private connected;
|
|
63
76
|
private _counter;
|
|
64
|
-
|
|
77
|
+
private _helloSettings;
|
|
78
|
+
constructor(transportSettings?: TransportSettingsOptions);
|
|
65
79
|
dispose(): void;
|
|
66
80
|
connect(endpointUrl: string, callback: ErrorCallback): void;
|
|
67
81
|
protected on_socket_ended(err: Error | null): void;
|
|
@@ -31,7 +31,8 @@ function createClientSocket(endpointUrl) {
|
|
|
31
31
|
switch (ep.protocol) {
|
|
32
32
|
case "opc.tcp:":
|
|
33
33
|
socket = (0, net_1.createConnection)({ host: hostname, port });
|
|
34
|
-
|
|
34
|
+
socket.setKeepAlive(true);
|
|
35
|
+
// Setting true for noDelay will immediately fire off data each time socket.write() is called.
|
|
35
36
|
socket.setNoDelay(true);
|
|
36
37
|
return socket;
|
|
37
38
|
case "fake:":
|
|
@@ -88,7 +89,7 @@ function createClientSocket(endpointUrl) {
|
|
|
88
89
|
*
|
|
89
90
|
*/
|
|
90
91
|
class ClientTCP_transport extends tcp_transport_1.TCP_transport {
|
|
91
|
-
constructor() {
|
|
92
|
+
constructor(transportSettings) {
|
|
92
93
|
super();
|
|
93
94
|
this.connected = false;
|
|
94
95
|
this.endpointUrl = "";
|
|
@@ -99,6 +100,13 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
|
|
|
99
100
|
this.maxChunkCount = 1;
|
|
100
101
|
this.maxMessageSize = 4 * 1024;
|
|
101
102
|
this.receiveBufferSize = 4 * 1024;
|
|
103
|
+
transportSettings = transportSettings || {};
|
|
104
|
+
this._helloSettings = {
|
|
105
|
+
maxChunkCount: transportSettings.maxChunkCount || ClientTCP_transport.defaultMaxChunk,
|
|
106
|
+
maxMessageSize: transportSettings.maxMessageSize || ClientTCP_transport.defaultMaxMessageSize,
|
|
107
|
+
receiveBufferSize: transportSettings.receiveBufferSize || ClientTCP_transport.defaultReceiveBufferSize,
|
|
108
|
+
sendBufferSize: transportSettings.sendBufferSize || ClientTCP_transport.defaultSendBufferSize
|
|
109
|
+
};
|
|
102
110
|
}
|
|
103
111
|
dispose() {
|
|
104
112
|
/* istanbul ignore next */
|
|
@@ -257,15 +265,16 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
|
|
|
257
265
|
(0, node_opcua_assert_1.assert)(this._socket);
|
|
258
266
|
(0, node_opcua_assert_1.assert)(isFinite(this.protocolVersion));
|
|
259
267
|
(0, node_opcua_assert_1.assert)(this.endpointUrl.length > 0, " expecting a valid endpoint url");
|
|
268
|
+
const { maxChunkCount, maxMessageSize, receiveBufferSize, sendBufferSize } = this._helloSettings;
|
|
260
269
|
// Write a message to the socket as soon as the client is connected,
|
|
261
270
|
// the server will receive it as message from the client
|
|
262
271
|
const helloMessage = new HelloMessage_1.HelloMessage({
|
|
263
272
|
endpointUrl: this.endpointUrl,
|
|
264
273
|
protocolVersion: this.protocolVersion,
|
|
265
|
-
maxChunkCount
|
|
266
|
-
maxMessageSize
|
|
267
|
-
receiveBufferSize
|
|
268
|
-
sendBufferSize
|
|
274
|
+
maxChunkCount,
|
|
275
|
+
maxMessageSize,
|
|
276
|
+
receiveBufferSize,
|
|
277
|
+
sendBufferSize
|
|
269
278
|
});
|
|
270
279
|
// istanbul ignore next
|
|
271
280
|
if (utils_1.doTraceHelloAck) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_tcp_transport.js","sourceRoot":"","sources":["../../source/client_tcp_transport.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yBAAyB;AACzB,6BAA+C;AAC/C,+BAA+B;AAE/B,yDAA2C;AAC3C,uEAAwD;AACxD,qEAA4D;AAG5D,0CAA0C;AAC1C,mDAAkE;AAClE,mCAA0E;AAE1E,6DAA0D;AAC1D,iDAA8C;AAC9C,uDAAoD;AACpD,mCAA0C;AAE1C,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AAEhC,SAAS,kBAAkB,CAAC,WAAmB;IAC3C,+BAA+B;IAC/B,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAK,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAS,CAAC;IAC9B,IAAI,MAAc,CAAC;IACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjB,KAAK,UAAU;YACX,MAAM,GAAG,IAAA,sBAAgB,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpD,
|
|
1
|
+
{"version":3,"file":"client_tcp_transport.js","sourceRoot":"","sources":["../../source/client_tcp_transport.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yBAAyB;AACzB,6BAA+C;AAC/C,+BAA+B;AAE/B,yDAA2C;AAC3C,uEAAwD;AACxD,qEAA4D;AAG5D,0CAA0C;AAC1C,mDAAkE;AAClE,mCAA0E;AAE1E,6DAA0D;AAC1D,iDAA8C;AAC9C,uDAAoD;AACpD,mCAA0C;AAE1C,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AAEhC,SAAS,kBAAkB,CAAC,WAAmB;IAC3C,+BAA+B;IAC/B,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAK,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAS,CAAC;IAC9B,IAAI,MAAc,CAAC;IACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjB,KAAK,UAAU;YACX,MAAM,GAAG,IAAA,sBAAgB,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAE1B,8FAA8F;YAC9F,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAExB,OAAO,MAAM,CAAC;QAClB,KAAK,OAAO;YACR,MAAM,GAAG,IAAA,gCAAgB,GAAE,CAAC;YAC5B,IAAA,0BAAM,EAAC,EAAE,CAAC,QAAQ,KAAK,OAAO,EAAE,iCAAiC,CAAC,CAAC;YACnE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC/C,OAAO,MAAM,CAAC;QAElB,KAAK,YAAY,CAAC;QAClB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,OAAO,CAAC,CAAC;YACL,MAAM,GAAG,GAAG,6DAA6D,GAAG,EAAE,CAAC,QAAQ,CAAC;YACxF,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;KACJ;AACL,CAAC;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAa,mBAAoB,SAAQ,6BAAa;IAmBlD,YAAY,iBAA4C;QACpD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAEvB,2BAA2B;QAC3B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;QAElC,iBAAiB,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG;YAClB,aAAa,EAAE,iBAAiB,CAAC,aAAa,IAAI,mBAAmB,CAAC,eAAe;YACrF,cAAc,EAAE,iBAAiB,CAAC,cAAc,IAAI,mBAAmB,CAAC,qBAAqB;YAC7F,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,wBAAwB;YACtG,cAAc,EAAE,iBAAiB,CAAC,cAAc,IAAI,mBAAmB,CAAC,qBAAqB;SAChG,CAAC;IACN,CAAC;IAEM,OAAO;QACV,0BAA0B;QAC1B,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,+BAA+B,CAAC,CAAC;SAC7C;QACD,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IAEM,OAAO,CAAC,WAAmB,EAAE,QAAuB;QACvD,IAAA,0BAAM,EAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAC/B,IAAA,0BAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;QAEvC,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;QAEzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;QAChD,0BAA0B;QAC1B,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;SAC1F;QACD,IAAI;YACA,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;SAClD;QAAC,OAAO,GAAG,EAAE;YACV,0BAA0B;YAC1B,IAAI,OAAO,EAAE;gBACT,QAAQ,CAAC,+BAA+B,CAAC,CAAC;aAC7C;YACD,OAAO,QAAQ,CAAC,GAAY,CAAC,CAAC;SACjC;QAED,MAAM,iCAAiC,GAAG,CAAC,GAAU,EAAE,EAAE;YACrD,0BAA0B;YAC1B,IAAI,OAAO,EAAE;gBACT,QAAQ,CAAC,qEAAqE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;aAChG;YACD,4GAA4G;YAC5G,uGAAuG;YACvG,oCAAoC;YAEpC,2GAA2G;YAC3G,sGAAsG;YACtG,8BAA8B;YAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;gBACvC;;;mBAGG;gBACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC5B,0BAA0B;YAC1B,IAAI,OAAO,EAAE;gBACT,QAAQ,CAAC,6BAA6B,CAAC,CAAC;aAC3C;YACD,yBAAyB,EAAE,CAAC;YAC5B,IAAI,CAAC,4BAA4B,CAAC,CAAC,GAAW,EAAE,EAAE;gBAC9C,IAAI,CAAC,GAAG,EAAE;oBACN,0BAA0B;oBAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;wBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;qBACrC;oBACD,mDAAmD;oBACnD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;oBAE5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB;;;;;uBAKG;oBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACxB;qBAAM;oBACH,QAAQ,CAAC,mDAAmD,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;iBAC9E;gBACD,QAAQ,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,MAAM,4BAA4B,GAAG,CAAC,GAAU,EAAE,EAAE;YAChD,yEAAyE;YACzE,0BAA0B;YAC1B,IAAI,OAAO,EAAE;gBACT,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;aACnG;YACD,IAAA,0BAAM,EAAC,GAAG,YAAY,KAAK,CAAC,CAAC;YAC7B,yBAAyB,EAAE,CAAC;YAC5B,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,0BAA0B,GAAG,CAAC,GAAiB,EAAE,EAAE;YACrD,0BAA0B;YAC1B,IAAI,OAAO,EAAE;gBACT,QAAQ,CACJ,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,EACxG,GAAG,CACN,CAAC;aACL;QACL,CAAC,CAAC;QAEF,MAAM,yBAAyB,GAAG,GAAG,EAAE;YACnC,0BAA0B;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,OAAO;aACV;YACD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;QACnE,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAEjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAES,eAAe,CAAC,GAAiB;QACvC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SAC9B;QACD,uBAAuB;QACvB,0CAA0C;QAC1C,IAAI;IACR,CAAC;IAEO,oBAAoB,CAAC,YAAoB,EAAE,QAAuB;QACtE,MAAM,OAAO,GAAG,IAAI,uCAAY,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAA,2CAAiB,EAAC,OAAO,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC;QACR,0BAA0B;QAC1B,IAAI,aAAa,CAAC,OAAO,KAAK,GAAG,EAAE;YAC/B,GAAG,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;SACxB;QAED,IAAI,aAAa,CAAC;QAClB,IAAI,QAAQ,CAAC;QAEb,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE;YACjC,aAAa,GAAG,iCAAe,CAAC;YAChC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,QAAQ,GAAG,IAAA,qBAAa,EAAC,OAAO,EAAE,aAAa,CAAoB,CAAC;YAEpE,GAAG,GAAG,IAAI,KAAK,CAAC,oBAAoB,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChG,GAAW,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;YAC9C,uBAAuB;YACvB,IAAI,uBAAe,EAAE;gBACjB,UAAU,CAAC,8BAA8B,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;aACnE;YACD,QAAQ,CAAC,GAAG,CAAC,CAAC;SACjB;aAAM;YACH,aAAa,GAAG,uCAAkB,CAAC;YACnC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,QAAQ,GAAG,IAAA,qBAAa,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAEjD,IAAI,CAAC,UAAU,GAAG,QAA8B,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,QAA8B,CAAC,CAAC;YAE/C,uBAAuB;YACvB,IAAI,uBAAe,EAAE;gBACjB,UAAU,CAAC,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;aACtD;YAED,QAAQ,EAAE,CAAC;SACd;IACL,CAAC;IAEO,mBAAmB;QACvB,0BAA0B;QAC1B,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,8BAA8B,CAAC,CAAC;SAC5C;QACD,IAAA,0BAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,IAAA,0BAAM,EAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACvC,IAAA,0BAAM,EAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,iCAAiC,CAAC,CAAC;QAEvE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;QAEjG,oEAAoE;QACpE,wDAAwD;QACxD,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,cAAc;SACjB,CAAC,CAAC;QACH,uBAAuB;QACvB,IAAI,uBAAe,EAAE;YACjB,UAAU,CAAC,mBAAmB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAC5D;QAED,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAEO,gBAAgB,CAAC,gBAA+B,EAAE,GAAiB,EAAE,IAAa;QACtF,0BAA0B;QAC1B,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,2BAA2B,CAAC,CAAC;SACzC;QAED,IAAA,0BAAM,EAAC,OAAO,gBAAgB,KAAK,UAAU,CAAC,CAAC;QAC/C,IAAA,0BAAM,EAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,6CAA6C,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QAEnB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACd,gBAAgB,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACnB,wCAAwC;aAC3C;SACJ;aAAM;YACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;SACrD;IACL,CAAC;IAEO,4BAA4B,CAAC,QAAuB;QACxD,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO,QAAQ,CAAC,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC;SACpF;QACD,IAAA,0BAAM,EAAC,IAAI,CAAC,OAAO,EAAE,4CAA4C,CAAC,CAAC;QACnE,IAAA,0BAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,0BAA0B;QAC1B,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,uCAAuC,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,kCAAkC,CAAC,CAAC,GAAiB,EAAE,IAAa,EAAE,EAAE;YACzE,0BAA0B;YAC1B,IAAI,OAAO,EAAE;gBACT,QAAQ,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;;AA3RL,kDA4RC;AA3RiB,mCAAe,GAAG,CAAC,CAAC,CAAC,gBAAgB;AACrC,yCAAqB,GAAG,CAAC,CAAC,CAAC,gBAAgB;AAC3C,4CAAwB,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AAC1C,yCAAqB,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY"}
|
|
@@ -16,14 +16,44 @@ export interface MessageBuilderBaseOptions {
|
|
|
16
16
|
maxChunkSize?: number;
|
|
17
17
|
}
|
|
18
18
|
export interface MessageBuilderBase {
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* notify the observers that a new message is being built
|
|
22
|
+
* @event start_chunk
|
|
23
|
+
* @param info
|
|
24
|
+
* @param data
|
|
25
|
+
*/
|
|
19
26
|
on(eventName: "startChunk", eventHandler: (info: PacketInfo, data: Buffer) => void): this;
|
|
27
|
+
/**
|
|
28
|
+
* notify the observers that new message chunk has been received
|
|
29
|
+
* @event chunk
|
|
30
|
+
* @param messageChunk the raw message chunk
|
|
31
|
+
*/
|
|
20
32
|
on(eventName: "chunk", eventHandler: (chunk: Buffer) => void): this;
|
|
33
|
+
/**
|
|
34
|
+
* notify the observers that an error has occurred
|
|
35
|
+
* @event error
|
|
36
|
+
* @param error the error to raise
|
|
37
|
+
*/
|
|
21
38
|
on(eventName: "error", eventHandler: (err: Error, statusCode: StatusCode, requestId: number | null) => void): this;
|
|
39
|
+
/**
|
|
40
|
+
* notify the observers that a full message has been received
|
|
41
|
+
* @event full_message_body
|
|
42
|
+
* @param full_message_body the full message body made of all concatenated chunks.
|
|
43
|
+
*/
|
|
22
44
|
on(eventName: "full_message_body", eventHandler: (fullMessageBody: Buffer) => void): this;
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
* @param eventName "abandon"
|
|
48
|
+
* @param info
|
|
49
|
+
* @param data
|
|
50
|
+
*/
|
|
51
|
+
on(eventName: "abandon", eventHandler: (requestId: number) => void): this;
|
|
23
52
|
emit(eventName: "startChunk", info: PacketInfo, data: Buffer): boolean;
|
|
24
53
|
emit(eventName: "chunk", chunk: Buffer): boolean;
|
|
25
54
|
emit(eventName: "error", err: Error, statusCode: StatusCode, requestId: number | null): boolean;
|
|
26
55
|
emit(eventName: "full_message_body", fullMessageBody: Buffer): boolean;
|
|
56
|
+
emit(eventName: "abandon", requestId: number): boolean;
|
|
27
57
|
}
|
|
28
58
|
/**
|
|
29
59
|
* @class MessageBuilderBase
|
|
@@ -68,6 +98,7 @@ export declare class MessageBuilderBase extends EventEmitter {
|
|
|
68
98
|
feed(data: Buffer): void;
|
|
69
99
|
protected _decodeMessageBody(fullMessageBody: Buffer): boolean;
|
|
70
100
|
protected _read_headers(binaryStream: BinaryStream): boolean;
|
|
101
|
+
protected _report_abandon(channelId: number, tokenId: number, sequenceHeader: SequenceHeader): false;
|
|
71
102
|
protected _report_error(statusCode: StatusCode, errorMessage: string): false;
|
|
72
103
|
private _init_new;
|
|
73
104
|
/**
|
|
@@ -6,6 +6,7 @@ exports.MessageBuilderBase = exports.readRawMessageHeader = void 0;
|
|
|
6
6
|
*/
|
|
7
7
|
const events_1 = require("events");
|
|
8
8
|
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
9
|
+
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
9
10
|
const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
|
|
10
11
|
const node_opcua_buffer_utils_1 = require("node-opcua-buffer-utils");
|
|
11
12
|
const node_opcua_chunkmanager_1 = require("node-opcua-chunkmanager");
|
|
@@ -66,13 +67,6 @@ class MessageBuilderBase extends events_1.EventEmitter {
|
|
|
66
67
|
// record tick 0: when the first data is received
|
|
67
68
|
this._tick0 = (0, node_opcua_utils_1.get_clock_tick)();
|
|
68
69
|
}
|
|
69
|
-
/**
|
|
70
|
-
*
|
|
71
|
-
* notify the observers that a new message is being built
|
|
72
|
-
* @event start_chunk
|
|
73
|
-
* @param info
|
|
74
|
-
* @param data
|
|
75
|
-
*/
|
|
76
70
|
this.emit("startChunk", info, data);
|
|
77
71
|
});
|
|
78
72
|
this._packetAssembler.on("error", (err) => {
|
|
@@ -119,16 +113,19 @@ class MessageBuilderBase extends events_1.EventEmitter {
|
|
|
119
113
|
return this._report_error(status_codes_1.StatusCodes2.BadTcpInternalError, "_read_headers error " + err.message);
|
|
120
114
|
}
|
|
121
115
|
}
|
|
116
|
+
_report_abandon(channelId, tokenId, sequenceHeader) {
|
|
117
|
+
// the server has not been able to send a complete message and has abandoned the request
|
|
118
|
+
// the connection can probably continue
|
|
119
|
+
this._hasReceivedError = false; ///
|
|
120
|
+
this.emit("abandon", sequenceHeader.requestId);
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
122
123
|
_report_error(statusCode, errorMessage) {
|
|
124
|
+
var _a;
|
|
123
125
|
this._hasReceivedError = true;
|
|
124
|
-
/**
|
|
125
|
-
* notify the observers that an error has occurred
|
|
126
|
-
* @event error
|
|
127
|
-
* @param error the error to raise
|
|
128
|
-
*/
|
|
129
126
|
debugLog("Error ", this.id, errorMessage);
|
|
130
127
|
// xx errorLog(new Error());
|
|
131
|
-
this.emit("error", new Error(errorMessage), statusCode, this.sequenceHeader ?
|
|
128
|
+
this.emit("error", new Error(errorMessage), statusCode, ((_a = this.sequenceHeader) === null || _a === void 0 ? void 0 : _a.requestId) || null);
|
|
132
129
|
return false;
|
|
133
130
|
}
|
|
134
131
|
_init_new() {
|
|
@@ -186,36 +183,54 @@ class MessageBuilderBase extends events_1.EventEmitter {
|
|
|
186
183
|
_feed_messageChunk(chunk) {
|
|
187
184
|
(0, node_opcua_assert_1.assert)(chunk);
|
|
188
185
|
const messageHeader = (0, node_opcua_chunkmanager_1.readMessageHeader)(new node_opcua_binary_stream_1.BinaryStream(chunk));
|
|
189
|
-
/**
|
|
190
|
-
* notify the observers that new message chunk has been received
|
|
191
|
-
* @event chunk
|
|
192
|
-
* @param messageChunk the raw message chunk
|
|
193
|
-
*/
|
|
194
186
|
this.emit("chunk", chunk);
|
|
195
187
|
if (messageHeader.isFinal === "F") {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
188
|
+
if (messageHeader.msgType === "ERR") {
|
|
189
|
+
const binaryStream = new node_opcua_binary_stream_1.BinaryStream(chunk);
|
|
190
|
+
binaryStream.length = 8;
|
|
191
|
+
const errorCode = (0, node_opcua_basic_types_1.decodeStatusCode)(binaryStream);
|
|
192
|
+
const message = (0, node_opcua_basic_types_1.decodeString)(binaryStream);
|
|
193
|
+
this._report_error(errorCode, message || "Error message not specified");
|
|
194
|
+
return true;
|
|
200
195
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
//
|
|
204
|
-
|
|
196
|
+
else {
|
|
197
|
+
this._append(chunk);
|
|
198
|
+
// last message
|
|
199
|
+
if (this._hasReceivedError) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
const fullMessageBody = this.blocks.length === 1 ? this.blocks[0] : Buffer.concat(this.blocks);
|
|
203
|
+
if (doPerfMonitoring) {
|
|
204
|
+
// record tick 1: when a complete message has been received ( all chunks assembled)
|
|
205
|
+
this._tick1 = (0, node_opcua_utils_1.get_clock_tick)();
|
|
206
|
+
}
|
|
207
|
+
this.emit("full_message_body", fullMessageBody);
|
|
208
|
+
this._decodeMessageBody(fullMessageBody);
|
|
209
|
+
// be ready for next block
|
|
210
|
+
this._init_new();
|
|
211
|
+
return true;
|
|
205
212
|
}
|
|
206
|
-
/**
|
|
207
|
-
* notify the observers that a full message has been received
|
|
208
|
-
* @event full_message_body
|
|
209
|
-
* @param full_message_body the full message body made of all concatenated chunks.
|
|
210
|
-
*/
|
|
211
|
-
this.emit("full_message_body", fullMessageBody);
|
|
212
|
-
this._decodeMessageBody(fullMessageBody);
|
|
213
|
-
// be ready for next block
|
|
214
|
-
this._init_new();
|
|
215
|
-
return true;
|
|
216
213
|
}
|
|
217
214
|
else if (messageHeader.isFinal === "A") {
|
|
218
|
-
|
|
215
|
+
try {
|
|
216
|
+
// only valid for MSG, according to spec
|
|
217
|
+
const stream = new node_opcua_binary_stream_1.BinaryStream(chunk);
|
|
218
|
+
(0, node_opcua_chunkmanager_1.readMessageHeader)(stream);
|
|
219
|
+
(0, node_opcua_assert_1.assert)(stream.length === 8);
|
|
220
|
+
// instead of
|
|
221
|
+
// const securityHeader = new SymmetricAlgorithmSecurityHeader();
|
|
222
|
+
// securityHeader.decode(stream);
|
|
223
|
+
const channelId = stream.readUInt32();
|
|
224
|
+
const tokenId = (0, node_opcua_basic_types_1.decodeUInt32)(stream);
|
|
225
|
+
const sequenceHeader = new node_opcua_chunkmanager_1.SequenceHeader();
|
|
226
|
+
sequenceHeader.decode(stream);
|
|
227
|
+
return this._report_abandon(channelId, tokenId, sequenceHeader);
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
warningLog((0, node_opcua_debug_1.hexDump)(chunk));
|
|
231
|
+
warningLog("Cannot interpret message chunk: ", err.message);
|
|
232
|
+
return this._report_error(status_codes_1.StatusCodes2.BadTcpInternalError, "Error decoding message header " + err.message);
|
|
233
|
+
}
|
|
219
234
|
}
|
|
220
235
|
else if (messageHeader.isFinal === "C") {
|
|
221
236
|
return this._append(chunk);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message_builder_base.js","sourceRoot":"","sources":["../../source/message_builder_base.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,mCAAsC;AACtC,yDAA2C;AAE3C,uEAAwD;AACxD,qEAAwE;AACxE,qEAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"message_builder_base.js","sourceRoot":"","sources":["../../source/message_builder_base.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,21 +107,21 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
|
|
|
107
107
|
(0, node_opcua_assert_1.assert)(helloMessage.receiveBufferSize >= minimumBufferSize);
|
|
108
108
|
(0, node_opcua_assert_1.assert)(helloMessage.sendBufferSize >= minimumBufferSize);
|
|
109
109
|
const minBufferSize = 8192;
|
|
110
|
-
const maxBufferSize = 64 * 1024;
|
|
110
|
+
const maxBufferSize = 8 * 64 * 1024;
|
|
111
111
|
const minMaxMessageSize = 128 * 1024;
|
|
112
112
|
const defaultMaxMessageSize = 16 * 1024 * 1024;
|
|
113
113
|
const maxMaxMessageSize = 128 * 1024 * 1024;
|
|
114
114
|
const minMaxChunkCount = 1;
|
|
115
115
|
const defaultMaxChunkCount = defaultMaxMessageSize / maxBufferSize;
|
|
116
116
|
const maxMaxChunkCount = 9000;
|
|
117
|
-
const
|
|
118
|
-
const
|
|
117
|
+
const defaultReceiveBufferSize = 64 * 1024;
|
|
118
|
+
const defaultSendBufferSize = 64 * 1024;
|
|
119
119
|
if (!helloMessage.maxChunkCount && helloMessage.sendBufferSize) {
|
|
120
120
|
helloMessage.maxChunkCount = helloMessage.maxMessageSize / helloMessage.sendBufferSize;
|
|
121
121
|
}
|
|
122
122
|
this.setLimits({
|
|
123
|
-
receiveBufferSize: clamp_value(helloMessage.receiveBufferSize ||
|
|
124
|
-
sendBufferSize: clamp_value(helloMessage.sendBufferSize ||
|
|
123
|
+
receiveBufferSize: clamp_value(helloMessage.receiveBufferSize || defaultReceiveBufferSize, minBufferSize, maxBufferSize),
|
|
124
|
+
sendBufferSize: clamp_value(helloMessage.sendBufferSize || defaultSendBufferSize, minBufferSize, maxBufferSize),
|
|
125
125
|
maxMessageSize: clamp_value(helloMessage.maxMessageSize || defaultMaxMessageSize, minMaxMessageSize, maxMaxMessageSize),
|
|
126
126
|
maxChunkCount: clamp_value(helloMessage.maxChunkCount || defaultMaxChunkCount, minMaxChunkCount, maxMaxChunkCount)
|
|
127
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server_tcp_transport.js","sourceRoot":"","sources":["../../source/server_tcp_transport.ts"],"names":[],"mappings":";;;AAMA,+BAA+B;AAC/B,yDAA2C;AAE3C,iBAAiB;AACjB,0CAA0C;AAC1C,uEAAwD;AACxD,qEAA+D;AAC/D,mEAAiE;AAGjE,wBAAwB;AACxB,6DAA0D;AAC1D,iDAA8C;AAC9C,mDAAgD;AAEhD,mCAAwD;AACxD,mCAA0C;AAE1C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAIjD,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;IAC9D,IAAA,0BAAM,EAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,CAAC,EAAE;QACb,OAAO,MAAM,CAAC;KACjB;IACD,IAAI,KAAK,GAAG,MAAM,EAAE;QAChB,OAAO,MAAM,CAAC;KACjB;IACD,yBAAyB;IACzB,IAAI,KAAK,IAAI,MAAM,EAAE;QACjB,OAAO,MAAM,CAAC;KACjB;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;;;;GAKG;AACH,MAAa,mBAAoB,SAAQ,6BAAa;IAMlD;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,iBAAiB;QACjB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;IACtC,CAAC;IAES,YAAY,CAAC,YAAoB;
|
|
1
|
+
{"version":3,"file":"server_tcp_transport.js","sourceRoot":"","sources":["../../source/server_tcp_transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,12 +16,29 @@ export interface MockSocket {
|
|
|
16
16
|
export declare function setFakeTransport(mockSocket: MockSocket): void;
|
|
17
17
|
export declare function getFakeTransport(): any;
|
|
18
18
|
export interface TCP_transport {
|
|
19
|
+
/**
|
|
20
|
+
* notify the observers that a message chunk has been received
|
|
21
|
+
* @event chunk
|
|
22
|
+
* @param message_chunk the message chunk
|
|
23
|
+
*/
|
|
19
24
|
on(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
|
|
25
|
+
/**
|
|
26
|
+
* notify the observers that the transport layer has been disconnected.
|
|
27
|
+
* @event socket_closed
|
|
28
|
+
* @param err the Error object or null
|
|
29
|
+
*/
|
|
20
30
|
on(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
|
|
31
|
+
/**
|
|
32
|
+
* notify the observers that the transport layer has been disconnected.
|
|
33
|
+
* @event close
|
|
34
|
+
*/
|
|
21
35
|
on(eventName: "close", eventHandler: (err: Error | null) => void): this;
|
|
22
36
|
once(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
|
|
23
37
|
once(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
|
|
24
38
|
once(eventName: "close", eventHandler: (err: Error | null) => void): this;
|
|
39
|
+
emit(eventName: "socket_closed", err?: Error | null): boolean;
|
|
40
|
+
emit(eventName: "close", err?: Error | null): boolean;
|
|
41
|
+
emit(eventName: "chunk", messageChunk: Buffer): boolean;
|
|
25
42
|
}
|
|
26
43
|
export declare class TCP_transport extends EventEmitter {
|
|
27
44
|
private static registry;
|
|
@@ -18,6 +18,7 @@ const tools_1 = require("./tools");
|
|
|
18
18
|
const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
|
|
19
19
|
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
|
|
20
20
|
const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
|
|
21
|
+
const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
|
|
21
22
|
let fakeSocket = {
|
|
22
23
|
invalid: true,
|
|
23
24
|
destroy() {
|
|
@@ -152,14 +153,13 @@ class TCP_transport extends events_1.EventEmitter {
|
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
on_socket_ended(err) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
this.emit("close", err || null);
|
|
156
|
+
if (!this._onSocketEndedHasBeenCalled) {
|
|
157
|
+
this._onSocketEndedHasBeenCalled = true; // we don't want to send close event twice ...
|
|
158
|
+
this.emit("close", err || null);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
debugLog("on_socket_ended has already been called");
|
|
162
|
+
}
|
|
163
163
|
}
|
|
164
164
|
_install_packetAssembler() {
|
|
165
165
|
if (this.packetAssembler) {
|
|
@@ -284,11 +284,6 @@ class TCP_transport extends events_1.EventEmitter {
|
|
|
284
284
|
const hadCallback = this._fulfill_pending_promises(null, messageChunk);
|
|
285
285
|
this.chunkReadCount++;
|
|
286
286
|
if (!hadCallback) {
|
|
287
|
-
/**
|
|
288
|
-
* notify the observers that a message chunk has been received
|
|
289
|
-
* @event message
|
|
290
|
-
* @param message_chunk the message chunk
|
|
291
|
-
*/
|
|
292
287
|
this.emit("chunk", messageChunk);
|
|
293
288
|
}
|
|
294
289
|
}
|
|
@@ -320,11 +315,6 @@ class TCP_transport extends events_1.EventEmitter {
|
|
|
320
315
|
}
|
|
321
316
|
(0, node_opcua_assert_1.assert)(!this._onSocketClosedHasBeenCalled);
|
|
322
317
|
this._onSocketClosedHasBeenCalled = true; // we don't want to send close event twice ...
|
|
323
|
-
/**
|
|
324
|
-
* notify the observers that the transport layer has been disconnected.
|
|
325
|
-
* @event socket_closed
|
|
326
|
-
* @param err the Error object or null
|
|
327
|
-
*/
|
|
328
318
|
this.emit("socket_closed", err || null);
|
|
329
319
|
}
|
|
330
320
|
_on_socket_data(data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcp_transport.js","sourceRoot":"","sources":["../../source/tcp_transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tcp_transport.js","sourceRoot":"","sources":["../../source/tcp_transport.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,mCAAsC;AAEtC,+BAA+B;AAE/B,yDAA2C;AAC3C,uDAA0G;AAC1G,2EAA4D;AAC5D,6EAAwF;AAGxF,iDAA8C;AAC9C,iEAA8D;AAC9D,mCAA+C;AAC/C,uDAAoD;AACpD,mCAAyC;AAEzC,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAA,iCAAc,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,UAAU,GAAG,IAAA,kCAAe,EAAC,UAAU,CAAC,CAAC;AAQ/C,IAAI,UAAU,GAAe;IACzB,OAAO,EAAE,IAAI;IAEb,OAAO;QACH,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC;IAED,GAAG;QACC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC/B,CAAC;CACJ,CAAC;AAEF,SAAgB,gBAAgB,CAAC,UAAsB;IACnD,UAAU,GAAG,UAAU,CAAC;AAC5B,CAAC;AAFD,4CAEC;AAED,SAAgB,gBAAgB;IAC5B,IAAI,UAAU,CAAC,OAAO,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;KAC/G;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AALD,4CAKC;AAED,IAAI,OAAO,GAAG,CAAC,CAAC;AA6BhB,4BAA4B;AAC5B,MAAa,aAAc,SAAQ,qBAAY;IAmC3C;QACI,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC;QAC5C,OAAO,IAAI,CAAC,CAAC;QAEb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,qBAAqB;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAExB,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACzC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,SAAS,CAAC,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EAMhB;QACG,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,gDAAgD;QAChD,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACpC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAW,OAAO,CAAC,KAAa;QAC5B,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,GAAG,aAAa,EAAE,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IACM,OAAO;QACV,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;QACD,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAoB,EAAE,QAA4C;QAC3E,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,YAAY,CAAC,CAAC;QAClD,IAAA,0BAAM,EAAC,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;QACvC,IAAA,0BAAM,EAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACpC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD;;;;;;;OAOG;IACI,UAAU,CAAC,QAAuB;QACrC,IAAA,0BAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,EAAE,yCAAyC,GAAG,QAAQ,CAAC,CAAC;QAE7F,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,QAAQ,EAAE,CAAC;YACX,OAAO;SACV;QAED,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,6CAA6C,CAAC,CAAC;QAC5E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,gCAAgC;QAChC,wGAAwG;QACxG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,wCAAwC;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,YAAY,CAAC,GAAG,EAAE;YACd,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IACpF,CAAC;IAES,YAAY,CAAC,YAAoB,EAAE,QAA4C;QACrF,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;SAC9C;aAAM;YACH,IAAI,QAAQ,EAAE;gBACV,QAAQ,EAAE,CAAC;aACd;SACJ;IACL,CAAC;IAES,eAAe,CAAC,GAAiB;QACvC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACnC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC,8CAA8C;YACvF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;SACnC;aAAM;YACH,QAAQ,CAAC,yCAAyC,CAAC,CAAC;SACvD;IACL,CAAC;IAES,wBAAwB;QAC9B,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;SACpC;QAED,+BAA+B;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,6CAAe,CAAC;YACvC,aAAa,EAAE,2CAAoB;YACnC,kBAAkB,EAAE,IAAI,CAAC,UAAU;YACnC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,uDAAuD;SAC/F,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5F,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3C,IAAI,UAAU,GAAG,2BAAY,CAAC,qBAAqB,CAAC;YACpD,QAAQ,IAAI,EAAE;gBACV,KAAK,sDAAwB,CAAC,iBAAiB;oBAC3C,UAAU,GAAG,2BAAY,CAAC,qBAAqB,CAAC;oBAChD,MAAM;gBACV;oBACI,UAAU,GAAG,2BAAY,CAAC,mBAAmB,CAAC;aACrD;YAED,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACP,CAAC;IACD;;;;OAIG;IACO,eAAe,CAAC,MAAc;QACpC,IAAA,0BAAM,EAAC,MAAM,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,kCAAkC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,IAAI,CAAC,OAAO;aACP,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aACxD,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aAC1D,EAAE,CAAC,KAAK,EAAE,CAAC,GAAU,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;aACnD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,qBAAqB;QACrB,QAAQ,CAAC,qCAAqC,GAAG,IAAI,CAAC,IAAI,GAAG,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtG,2FAA2F;QAC3F,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE;YAC9C,QAAQ,CAAC,YAAY,IAAI,CAAC,IAAI,6BAA6B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YAC5E,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,2BAA2B,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,2BAAY,CAAC,UAAU,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,gBAAgB,CAAC,UAAsB,EAAE,qBAAoC;QAChF,mIAAmI;QACnI,4HAA4H;QAE5H,yBAAyB;QACzB,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrF,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;SACxF;QAED,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,qBAAqB,IAAI,EAAE,EAAE,CAAC;QACzE,MAAM,aAAa,GAAG,IAAI,iCAAe,CAAC;YACtC,UAAU;YACV,MAAM;SACT,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAEM,kBAAkB,CAAC,GAAU,EAAE,UAAsB;QACxD,kEAAkE;QAElE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9E,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,GAAG,CAAC,OAAO,GAAG,+BAA+B,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5D,+BAA+B;YAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YACxB,EAAE,CAAC,GAAG,EAAE,CAAC;YACT,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,sCAAsC;YACpD,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,EAAE,CAAC,kBAAkB,EAAE,CAAC;SAC3B;QACD,+BAA+B;IACnC,CAAC;IACD;;;;;;;;;;;;;OAaG;IACO,kCAAkC,CAAC,QAA0B;QACnE,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;QACnD,IAAA,0BAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,gCAAgC,EAAE,CAAC;IAC5C,CAAC;IAEO,yBAAyB,CAAC,GAAiB,EAAE,IAAa;QAC9D,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,0CAA0C,EAAE;YACjE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACtF,IAAI,CAAC,0CAA0C,GAAG,IAAI,CAAC;SAC1D;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAE9B,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,0BAA0B,CAAC,YAAoB;QACnD,IAAI,4BAAoB,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,IAAA,0BAAO,EAAC,YAAY,CAAC,CAAC,CAAC;SACtC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACvE,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;SACpC;IACL,CAAC;IAEO,eAAe;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;IACL,CAAC;IAEO,gCAAgC;QACpC,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAEhD,qCAAqC;QACrC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,yDAAyD,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;QAC3H,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjB,iBAAiB;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,yCAAyC;YACzC,IAAI,CAAC,0CAA0C,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC9D,IAAI,CAAC,yBAAyB,CAC1B,IAAI,KAAK,CAAC,uDAAuD,IAAI,CAAC,OAAO,OAAO,IAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA,CAAC,CACvG,CAAC;YACN,CAAC,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC;SAC7E;IACL,CAAC;IAEO,gBAAgB,CAAC,GAAW;QAChC,IAAI,IAAI,CAAC,4BAA4B,EAAE;YACnC,OAAO;SACV;QACD,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3C,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC,8CAA8C;QACxF,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEO,eAAe,CAAC,IAAY;QAChC,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnC;IACL,CAAC;IAEO,gBAAgB,CAAC,QAAiB;QACtC,uBAAuB;QACvB,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACpH;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,QAAQ,CACJ,qBAAqB,EACrB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,UAAU,CAC1B,CAAC;SACL;QACD,IAAI,QAAQ,EAAE;YACV,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B;SACJ;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAEO,wBAAwB,CAAC,GAAW;QACxC,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO;SACV;QAED,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAEvE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,yCAAyC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;IAEO,cAAc,CAAC,GAAU;QAC7B,uBAAuB;QACvB,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAClG;QACD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB,CAAC,GAAU;QAC/B,uBAAuB;QACvB,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACjF;QACD,uEAAuE;IAC3E,CAAC;;AAjbL,sCAkbC;AAjbkB,sBAAQ,GAAG,IAAI,2CAAc,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-transport",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.74.0",
|
|
4
4
|
"description": "pure nodejs OPCUA SDK - module -transport",
|
|
5
5
|
"main": "./dist/source/index.js",
|
|
6
6
|
"types": "./dist/source/index.d.ts",
|
|
@@ -13,19 +13,19 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"chalk": "4.1.2",
|
|
16
|
-
"node-opcua-assert": "2.
|
|
17
|
-
"node-opcua-basic-types": "2.
|
|
18
|
-
"node-opcua-binary-stream": "2.
|
|
19
|
-
"node-opcua-buffer-utils": "2.
|
|
20
|
-
"node-opcua-chunkmanager": "2.
|
|
21
|
-
"node-opcua-debug": "2.
|
|
22
|
-
"node-opcua-factory": "2.
|
|
23
|
-
"node-opcua-nodeid": "2.
|
|
24
|
-
"node-opcua-object-registry": "2.
|
|
25
|
-
"node-opcua-packet-assembler": "2.
|
|
26
|
-
"node-opcua-status-code": "2.
|
|
27
|
-
"node-opcua-types": "2.
|
|
28
|
-
"node-opcua-utils": "2.
|
|
16
|
+
"node-opcua-assert": "2.74.0",
|
|
17
|
+
"node-opcua-basic-types": "2.74.0",
|
|
18
|
+
"node-opcua-binary-stream": "2.74.0",
|
|
19
|
+
"node-opcua-buffer-utils": "2.74.0",
|
|
20
|
+
"node-opcua-chunkmanager": "2.74.0",
|
|
21
|
+
"node-opcua-debug": "2.74.0",
|
|
22
|
+
"node-opcua-factory": "2.74.0",
|
|
23
|
+
"node-opcua-nodeid": "2.74.0",
|
|
24
|
+
"node-opcua-object-registry": "2.74.0",
|
|
25
|
+
"node-opcua-packet-assembler": "2.74.0",
|
|
26
|
+
"node-opcua-status-code": "2.74.0",
|
|
27
|
+
"node-opcua-types": "2.74.0",
|
|
28
|
+
"node-opcua-utils": "2.74.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "18.0.0",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"internet of things"
|
|
48
48
|
],
|
|
49
49
|
"homepage": "http://node-opcua.github.io/",
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "003ee041795f3b737afaaef5721045ee31ea9f77"
|
|
51
51
|
}
|
package/source/HelloMessage.ts
CHANGED
|
@@ -35,7 +35,9 @@ function createClientSocket(endpointUrl: string): Socket {
|
|
|
35
35
|
case "opc.tcp:":
|
|
36
36
|
socket = createConnection({ host: hostname, port });
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
socket.setKeepAlive(true);
|
|
39
|
+
|
|
40
|
+
// Setting true for noDelay will immediately fire off data each time socket.write() is called.
|
|
39
41
|
socket.setNoDelay(true);
|
|
40
42
|
|
|
41
43
|
return socket;
|
|
@@ -60,11 +62,26 @@ export interface ClientTCP_transport {
|
|
|
60
62
|
on(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
|
|
61
63
|
on(eventName: "close", eventHandler: (err: Error | null) => void): this;
|
|
62
64
|
on(eventName: "connection_break", eventHandler: () => void): this;
|
|
65
|
+
on(eventName: "connect", eventHandler: () => void): this;
|
|
63
66
|
|
|
64
67
|
once(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
|
|
65
68
|
once(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
|
|
66
69
|
once(eventName: "close", eventHandler: (err: Error | null) => void): this;
|
|
67
70
|
once(eventName: "connection_break", eventHandler: () => void): this;
|
|
71
|
+
once(eventName: "connect", eventHandler: () => void): this;
|
|
72
|
+
|
|
73
|
+
emit(eventName: "chunk", messageChunk: Buffer): boolean;
|
|
74
|
+
emit(eventName: "socket_closed", err?: Error | null): boolean;
|
|
75
|
+
emit(eventName: "close", err?: Error | null): boolean;
|
|
76
|
+
emit(eventName: "connection_break"): boolean;
|
|
77
|
+
emit(eventName: "connect"): boolean;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface TransportSettingsOptions {
|
|
81
|
+
maxChunkCount?: number;
|
|
82
|
+
maxMessageSize?: number;
|
|
83
|
+
receiveBufferSize?: number;
|
|
84
|
+
sendBufferSize?: number;
|
|
68
85
|
}
|
|
69
86
|
|
|
70
87
|
/**
|
|
@@ -118,8 +135,13 @@ export class ClientTCP_transport extends TCP_transport {
|
|
|
118
135
|
|
|
119
136
|
private connected: boolean;
|
|
120
137
|
private _counter: number;
|
|
121
|
-
|
|
122
|
-
|
|
138
|
+
private _helloSettings: {
|
|
139
|
+
maxChunkCount: number;
|
|
140
|
+
maxMessageSize: number;
|
|
141
|
+
receiveBufferSize: number;
|
|
142
|
+
sendBufferSize: number;
|
|
143
|
+
};
|
|
144
|
+
constructor(transportSettings?: TransportSettingsOptions) {
|
|
123
145
|
super();
|
|
124
146
|
this.connected = false;
|
|
125
147
|
this.endpointUrl = "";
|
|
@@ -131,6 +153,14 @@ export class ClientTCP_transport extends TCP_transport {
|
|
|
131
153
|
this.maxChunkCount = 1;
|
|
132
154
|
this.maxMessageSize = 4 * 1024;
|
|
133
155
|
this.receiveBufferSize = 4 * 1024;
|
|
156
|
+
|
|
157
|
+
transportSettings = transportSettings || {};
|
|
158
|
+
this._helloSettings = {
|
|
159
|
+
maxChunkCount: transportSettings.maxChunkCount || ClientTCP_transport.defaultMaxChunk,
|
|
160
|
+
maxMessageSize: transportSettings.maxMessageSize || ClientTCP_transport.defaultMaxMessageSize,
|
|
161
|
+
receiveBufferSize: transportSettings.receiveBufferSize || ClientTCP_transport.defaultReceiveBufferSize,
|
|
162
|
+
sendBufferSize: transportSettings.sendBufferSize || ClientTCP_transport.defaultSendBufferSize
|
|
163
|
+
};
|
|
134
164
|
}
|
|
135
165
|
|
|
136
166
|
public dispose(): void {
|
|
@@ -313,15 +343,17 @@ export class ClientTCP_transport extends TCP_transport {
|
|
|
313
343
|
assert(isFinite(this.protocolVersion));
|
|
314
344
|
assert(this.endpointUrl.length > 0, " expecting a valid endpoint url");
|
|
315
345
|
|
|
346
|
+
const { maxChunkCount, maxMessageSize, receiveBufferSize, sendBufferSize } = this._helloSettings;
|
|
347
|
+
|
|
316
348
|
// Write a message to the socket as soon as the client is connected,
|
|
317
349
|
// the server will receive it as message from the client
|
|
318
350
|
const helloMessage = new HelloMessage({
|
|
319
351
|
endpointUrl: this.endpointUrl,
|
|
320
352
|
protocolVersion: this.protocolVersion,
|
|
321
|
-
maxChunkCount
|
|
322
|
-
maxMessageSize
|
|
323
|
-
receiveBufferSize
|
|
324
|
-
sendBufferSize
|
|
353
|
+
maxChunkCount,
|
|
354
|
+
maxMessageSize,
|
|
355
|
+
receiveBufferSize,
|
|
356
|
+
sendBufferSize
|
|
325
357
|
});
|
|
326
358
|
// istanbul ignore next
|
|
327
359
|
if (doTraceHelloAck) {
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
import { EventEmitter } from "events";
|
|
5
5
|
import { assert } from "node-opcua-assert";
|
|
6
6
|
|
|
7
|
+
import { decodeStatusCode, decodeString, decodeUInt32 } from "node-opcua-basic-types";
|
|
7
8
|
import { BinaryStream } from "node-opcua-binary-stream";
|
|
8
9
|
import { createFastUninitializedBuffer } from "node-opcua-buffer-utils";
|
|
9
10
|
import { readMessageHeader, SequenceHeader } from "node-opcua-chunkmanager";
|
|
10
|
-
import { make_errorLog, make_debugLog, make_warningLog } from "node-opcua-debug";
|
|
11
|
+
import { make_errorLog, make_debugLog, make_warningLog, hexDump } from "node-opcua-debug";
|
|
11
12
|
import { MessageHeader, PacketAssembler, PacketInfo } from "node-opcua-packet-assembler";
|
|
12
13
|
import { StatusCode } from "node-opcua-status-code";
|
|
13
14
|
import { get_clock_tick } from "node-opcua-utils";
|
|
14
15
|
import { StatusCodes2 } from "./status_codes";
|
|
15
|
-
|
|
16
16
|
const doPerfMonitoring = process.env.NODEOPCUADEBUG && process.env.NODEOPCUADEBUG.indexOf("PERF") >= 0;
|
|
17
17
|
|
|
18
18
|
const errorLog = make_errorLog("MessageBuilder");
|
|
@@ -36,15 +36,49 @@ export interface MessageBuilderBaseOptions {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export interface MessageBuilderBase {
|
|
39
|
+
/**
|
|
40
|
+
*
|
|
41
|
+
* notify the observers that a new message is being built
|
|
42
|
+
* @event start_chunk
|
|
43
|
+
* @param info
|
|
44
|
+
* @param data
|
|
45
|
+
*/
|
|
46
|
+
|
|
39
47
|
on(eventName: "startChunk", eventHandler: (info: PacketInfo, data: Buffer) => void): this;
|
|
48
|
+
/**
|
|
49
|
+
* notify the observers that new message chunk has been received
|
|
50
|
+
* @event chunk
|
|
51
|
+
* @param messageChunk the raw message chunk
|
|
52
|
+
*/
|
|
53
|
+
|
|
40
54
|
on(eventName: "chunk", eventHandler: (chunk: Buffer) => void): this;
|
|
55
|
+
/**
|
|
56
|
+
* notify the observers that an error has occurred
|
|
57
|
+
* @event error
|
|
58
|
+
* @param error the error to raise
|
|
59
|
+
*/
|
|
60
|
+
|
|
41
61
|
on(eventName: "error", eventHandler: (err: Error, statusCode: StatusCode, requestId: number | null) => void): this;
|
|
62
|
+
/**
|
|
63
|
+
* notify the observers that a full message has been received
|
|
64
|
+
* @event full_message_body
|
|
65
|
+
* @param full_message_body the full message body made of all concatenated chunks.
|
|
66
|
+
*/
|
|
42
67
|
on(eventName: "full_message_body", eventHandler: (fullMessageBody: Buffer) => void): this;
|
|
43
68
|
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
* @param eventName "abandon"
|
|
72
|
+
* @param info
|
|
73
|
+
* @param data
|
|
74
|
+
*/
|
|
75
|
+
on(eventName: "abandon", eventHandler: (requestId: number) => void): this;
|
|
76
|
+
|
|
44
77
|
emit(eventName: "startChunk", info: PacketInfo, data: Buffer): boolean;
|
|
45
78
|
emit(eventName: "chunk", chunk: Buffer): boolean;
|
|
46
79
|
emit(eventName: "error", err: Error, statusCode: StatusCode, requestId: number | null): boolean;
|
|
47
80
|
emit(eventName: "full_message_body", fullMessageBody: Buffer): boolean;
|
|
81
|
+
emit(eventName: "abandon", requestId: number): boolean;
|
|
48
82
|
}
|
|
49
83
|
/**
|
|
50
84
|
* @class MessageBuilderBase
|
|
@@ -125,13 +159,6 @@ export class MessageBuilderBase extends EventEmitter {
|
|
|
125
159
|
// record tick 0: when the first data is received
|
|
126
160
|
this._tick0 = get_clock_tick();
|
|
127
161
|
}
|
|
128
|
-
/**
|
|
129
|
-
*
|
|
130
|
-
* notify the observers that a new message is being built
|
|
131
|
-
* @event start_chunk
|
|
132
|
-
* @param info
|
|
133
|
-
* @param data
|
|
134
|
-
*/
|
|
135
162
|
this.emit("startChunk", info, data);
|
|
136
163
|
});
|
|
137
164
|
|
|
@@ -186,16 +213,19 @@ export class MessageBuilderBase extends EventEmitter {
|
|
|
186
213
|
}
|
|
187
214
|
}
|
|
188
215
|
|
|
216
|
+
protected _report_abandon(channelId: number, tokenId: number, sequenceHeader: SequenceHeader): false {
|
|
217
|
+
// the server has not been able to send a complete message and has abandoned the request
|
|
218
|
+
// the connection can probably continue
|
|
219
|
+
this._hasReceivedError = false; ///
|
|
220
|
+
this.emit("abandon", sequenceHeader.requestId);
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
|
|
189
224
|
protected _report_error(statusCode: StatusCode, errorMessage: string): false {
|
|
190
225
|
this._hasReceivedError = true;
|
|
191
|
-
/**
|
|
192
|
-
* notify the observers that an error has occurred
|
|
193
|
-
* @event error
|
|
194
|
-
* @param error the error to raise
|
|
195
|
-
*/
|
|
196
226
|
debugLog("Error ", this.id, errorMessage);
|
|
197
227
|
// xx errorLog(new Error());
|
|
198
|
-
this.emit("error", new Error(errorMessage), statusCode, this.sequenceHeader
|
|
228
|
+
this.emit("error", new Error(errorMessage), statusCode, this.sequenceHeader?.requestId || null);
|
|
199
229
|
return false;
|
|
200
230
|
}
|
|
201
231
|
|
|
@@ -271,42 +301,64 @@ export class MessageBuilderBase extends EventEmitter {
|
|
|
271
301
|
return true;
|
|
272
302
|
}
|
|
273
303
|
|
|
274
|
-
private _feed_messageChunk(chunk: Buffer) {
|
|
304
|
+
private _feed_messageChunk(chunk: Buffer): boolean {
|
|
275
305
|
assert(chunk);
|
|
276
306
|
const messageHeader = readMessageHeader(new BinaryStream(chunk));
|
|
277
|
-
/**
|
|
278
|
-
* notify the observers that new message chunk has been received
|
|
279
|
-
* @event chunk
|
|
280
|
-
* @param messageChunk the raw message chunk
|
|
281
|
-
*/
|
|
282
307
|
this.emit("chunk", chunk);
|
|
283
308
|
|
|
284
309
|
if (messageHeader.isFinal === "F") {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
310
|
+
if (messageHeader.msgType === "ERR") {
|
|
311
|
+
const binaryStream = new BinaryStream(chunk);
|
|
312
|
+
binaryStream.length = 8;
|
|
313
|
+
const errorCode = decodeStatusCode(binaryStream);
|
|
314
|
+
const message = decodeString(binaryStream);
|
|
315
|
+
this._report_error(errorCode, message || "Error message not specified");
|
|
316
|
+
return true;
|
|
317
|
+
} else {
|
|
318
|
+
this._append(chunk);
|
|
319
|
+
// last message
|
|
320
|
+
if (this._hasReceivedError) {
|
|
321
|
+
return false;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
const fullMessageBody: Buffer = this.blocks.length === 1 ? this.blocks[0] : Buffer.concat(this.blocks);
|
|
325
|
+
|
|
326
|
+
if (doPerfMonitoring) {
|
|
327
|
+
// record tick 1: when a complete message has been received ( all chunks assembled)
|
|
328
|
+
this._tick1 = get_clock_tick();
|
|
329
|
+
}
|
|
330
|
+
this.emit("full_message_body", fullMessageBody);
|
|
331
|
+
|
|
332
|
+
this._decodeMessageBody(fullMessageBody);
|
|
333
|
+
// be ready for next block
|
|
334
|
+
this._init_new();
|
|
335
|
+
return true;
|
|
289
336
|
}
|
|
290
|
-
|
|
291
|
-
const fullMessageBody: Buffer = this.blocks.length === 1 ? this.blocks[0] : Buffer.concat(this.blocks);
|
|
292
|
-
|
|
293
|
-
if (doPerfMonitoring) {
|
|
294
|
-
// record tick 1: when a complete message has been received ( all chunks assembled)
|
|
295
|
-
this._tick1 = get_clock_tick();
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* notify the observers that a full message has been received
|
|
299
|
-
* @event full_message_body
|
|
300
|
-
* @param full_message_body the full message body made of all concatenated chunks.
|
|
301
|
-
*/
|
|
302
|
-
this.emit("full_message_body", fullMessageBody);
|
|
303
|
-
|
|
304
|
-
this._decodeMessageBody(fullMessageBody);
|
|
305
|
-
// be ready for next block
|
|
306
|
-
this._init_new();
|
|
307
|
-
return true;
|
|
308
337
|
} else if (messageHeader.isFinal === "A") {
|
|
309
|
-
|
|
338
|
+
try {
|
|
339
|
+
// only valid for MSG, according to spec
|
|
340
|
+
const stream = new BinaryStream(chunk);
|
|
341
|
+
readMessageHeader(stream);
|
|
342
|
+
assert(stream.length === 8);
|
|
343
|
+
// instead of
|
|
344
|
+
// const securityHeader = new SymmetricAlgorithmSecurityHeader();
|
|
345
|
+
// securityHeader.decode(stream);
|
|
346
|
+
|
|
347
|
+
const channelId = stream.readUInt32();
|
|
348
|
+
const tokenId = decodeUInt32(stream);
|
|
349
|
+
|
|
350
|
+
const sequenceHeader = new SequenceHeader();
|
|
351
|
+
sequenceHeader.decode(stream);
|
|
352
|
+
|
|
353
|
+
return this._report_abandon(channelId, tokenId, sequenceHeader);
|
|
354
|
+
} catch (err) {
|
|
355
|
+
warningLog(hexDump(chunk));
|
|
356
|
+
warningLog("Cannot interpret message chunk: ", (err as Error).message);
|
|
357
|
+
return this._report_error(
|
|
358
|
+
StatusCodes2.BadTcpInternalError,
|
|
359
|
+
"Error decoding message header " + (err as Error).message
|
|
360
|
+
);
|
|
361
|
+
}
|
|
310
362
|
} else if (messageHeader.isFinal === "C") {
|
|
311
363
|
return this._append(chunk);
|
|
312
364
|
}
|
|
@@ -70,7 +70,6 @@ export class ServerTCP_transport extends TCP_transport {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
protected _write_chunk(messageChunk: Buffer): void {
|
|
73
|
-
|
|
74
73
|
// istanbul ignore next
|
|
75
74
|
if (this.sendBufferSize > 0 && messageChunk.length > this.sendBufferSize) {
|
|
76
75
|
errorLog(
|
|
@@ -80,7 +79,7 @@ export class ServerTCP_transport extends TCP_transport {
|
|
|
80
79
|
this.sendBufferSize
|
|
81
80
|
);
|
|
82
81
|
}
|
|
83
|
-
|
|
82
|
+
|
|
84
83
|
super._write_chunk(messageChunk);
|
|
85
84
|
}
|
|
86
85
|
/**
|
|
@@ -105,6 +104,7 @@ export class ServerTCP_transport extends TCP_transport {
|
|
|
105
104
|
}
|
|
106
105
|
assert(!this._socket, "init already called!");
|
|
107
106
|
assert(typeof callback === "function", "expecting a valid callback ");
|
|
107
|
+
|
|
108
108
|
this._install_socket(socket);
|
|
109
109
|
this._install_HEL_message_receiver(callback);
|
|
110
110
|
}
|
|
@@ -117,7 +117,7 @@ export class ServerTCP_transport extends TCP_transport {
|
|
|
117
117
|
// When a fatal error occurs, the Server shall send an Error Message to the Client and
|
|
118
118
|
// closes the TransportConnection gracefully.
|
|
119
119
|
doDebug && debugLog(chalk.cyan("_abortWithError"));
|
|
120
|
-
|
|
120
|
+
|
|
121
121
|
/* istanbul ignore next */
|
|
122
122
|
if (this._aborted) {
|
|
123
123
|
// already called
|
|
@@ -141,7 +141,7 @@ export class ServerTCP_transport extends TCP_transport {
|
|
|
141
141
|
assert(helloMessage.sendBufferSize >= minimumBufferSize);
|
|
142
142
|
|
|
143
143
|
const minBufferSize = 8192;
|
|
144
|
-
const maxBufferSize = 64 * 1024;
|
|
144
|
+
const maxBufferSize = 8 * 64 * 1024;
|
|
145
145
|
|
|
146
146
|
const minMaxMessageSize = 128 * 1024;
|
|
147
147
|
const defaultMaxMessageSize = 16 * 1024 * 1024;
|
|
@@ -151,16 +151,20 @@ export class ServerTCP_transport extends TCP_transport {
|
|
|
151
151
|
const defaultMaxChunkCount = defaultMaxMessageSize / maxBufferSize;
|
|
152
152
|
const maxMaxChunkCount = 9000;
|
|
153
153
|
|
|
154
|
-
const
|
|
155
|
-
const
|
|
154
|
+
const defaultReceiveBufferSize = 64 * 1024;
|
|
155
|
+
const defaultSendBufferSize = 64 * 1024;
|
|
156
156
|
|
|
157
157
|
if (!helloMessage.maxChunkCount && helloMessage.sendBufferSize) {
|
|
158
158
|
helloMessage.maxChunkCount = helloMessage.maxMessageSize / helloMessage.sendBufferSize;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
this.setLimits({
|
|
162
|
-
receiveBufferSize: clamp_value(
|
|
163
|
-
|
|
162
|
+
receiveBufferSize: clamp_value(
|
|
163
|
+
helloMessage.receiveBufferSize || defaultReceiveBufferSize,
|
|
164
|
+
minBufferSize,
|
|
165
|
+
maxBufferSize
|
|
166
|
+
),
|
|
167
|
+
sendBufferSize: clamp_value(helloMessage.sendBufferSize || defaultSendBufferSize, minBufferSize, maxBufferSize),
|
|
164
168
|
maxMessageSize: clamp_value(helloMessage.maxMessageSize || defaultMaxMessageSize, minMaxMessageSize, maxMaxMessageSize),
|
|
165
169
|
maxChunkCount: clamp_value(helloMessage.maxChunkCount || defaultMaxChunkCount, minMaxChunkCount, maxMaxChunkCount)
|
|
166
170
|
});
|
package/source/tcp_transport.ts
CHANGED
|
@@ -6,8 +6,7 @@ import { Socket } from "net";
|
|
|
6
6
|
import * as chalk from "chalk";
|
|
7
7
|
|
|
8
8
|
import { assert } from "node-opcua-assert";
|
|
9
|
-
import {
|
|
10
|
-
import { make_debugLog, checkDebugFlag, make_errorLog, hexDump } from "node-opcua-debug";
|
|
9
|
+
import { make_debugLog, checkDebugFlag, make_errorLog, hexDump, make_warningLog } from "node-opcua-debug";
|
|
11
10
|
import { ObjectRegistry } from "node-opcua-object-registry";
|
|
12
11
|
import { PacketAssembler, PacketAssemblerErrorCode } from "node-opcua-packet-assembler";
|
|
13
12
|
import { ErrorCallback, CallbackWithData, StatusCode } from "node-opcua-status-code";
|
|
@@ -21,6 +20,7 @@ import { packTcpMessage } from "./tools";
|
|
|
21
20
|
const debugLog = make_debugLog(__filename);
|
|
22
21
|
const doDebug = checkDebugFlag(__filename);
|
|
23
22
|
const errorLog = make_errorLog(__filename);
|
|
23
|
+
const warningLog = make_warningLog(__filename);
|
|
24
24
|
|
|
25
25
|
export interface MockSocket {
|
|
26
26
|
invalid?: boolean;
|
|
@@ -54,13 +54,31 @@ export function getFakeTransport(): any {
|
|
|
54
54
|
let counter = 0;
|
|
55
55
|
|
|
56
56
|
export interface TCP_transport {
|
|
57
|
+
/**
|
|
58
|
+
* notify the observers that a message chunk has been received
|
|
59
|
+
* @event chunk
|
|
60
|
+
* @param message_chunk the message chunk
|
|
61
|
+
*/
|
|
57
62
|
on(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
|
|
63
|
+
/**
|
|
64
|
+
* notify the observers that the transport layer has been disconnected.
|
|
65
|
+
* @event socket_closed
|
|
66
|
+
* @param err the Error object or null
|
|
67
|
+
*/
|
|
58
68
|
on(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
|
|
69
|
+
/**
|
|
70
|
+
* notify the observers that the transport layer has been disconnected.
|
|
71
|
+
* @event close
|
|
72
|
+
*/
|
|
59
73
|
on(eventName: "close", eventHandler: (err: Error | null) => void): this;
|
|
60
74
|
|
|
61
75
|
once(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
|
|
62
76
|
once(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
|
|
63
77
|
once(eventName: "close", eventHandler: (err: Error | null) => void): this;
|
|
78
|
+
|
|
79
|
+
emit(eventName: "socket_closed", err?: Error | null): boolean;
|
|
80
|
+
emit(eventName: "close", err?: Error | null): boolean;
|
|
81
|
+
emit(eventName: "chunk", messageChunk: Buffer): boolean;
|
|
64
82
|
}
|
|
65
83
|
// tslint:disable:class-name
|
|
66
84
|
export class TCP_transport extends EventEmitter {
|
|
@@ -237,14 +255,12 @@ export class TCP_transport extends EventEmitter {
|
|
|
237
255
|
}
|
|
238
256
|
|
|
239
257
|
protected on_socket_ended(err: Error | null): void {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
*/
|
|
247
|
-
this.emit("close", err || null);
|
|
258
|
+
if (!this._onSocketEndedHasBeenCalled) {
|
|
259
|
+
this._onSocketEndedHasBeenCalled = true; // we don't want to send close event twice ...
|
|
260
|
+
this.emit("close", err || null);
|
|
261
|
+
} else {
|
|
262
|
+
debugLog("on_socket_ended has already been called");
|
|
263
|
+
}
|
|
248
264
|
}
|
|
249
265
|
|
|
250
266
|
protected _install_packetAssembler() {
|
|
@@ -300,7 +316,7 @@ export class TCP_transport extends EventEmitter {
|
|
|
300
316
|
debugLog(" TCP_transport#install => setting " + this.name + " _socket.setTimeout to ", this.timeout);
|
|
301
317
|
|
|
302
318
|
// let use a large timeout here to make sure that we not conflict with our internal timeout
|
|
303
|
-
this._socket
|
|
319
|
+
this._socket.setTimeout(this.timeout + 2000, () => {
|
|
304
320
|
debugLog(` _socket ${this.name} has timed out (timeout = ${this.timeout})`);
|
|
305
321
|
this.prematureTerminate(new Error("socket timeout : timeout=" + this.timeout), StatusCodes2.BadTimeout);
|
|
306
322
|
});
|
|
@@ -389,11 +405,6 @@ export class TCP_transport extends EventEmitter {
|
|
|
389
405
|
const hadCallback = this._fulfill_pending_promises(null, messageChunk);
|
|
390
406
|
this.chunkReadCount++;
|
|
391
407
|
if (!hadCallback) {
|
|
392
|
-
/**
|
|
393
|
-
* notify the observers that a message chunk has been received
|
|
394
|
-
* @event message
|
|
395
|
-
* @param message_chunk the message chunk
|
|
396
|
-
*/
|
|
397
408
|
this.emit("chunk", messageChunk);
|
|
398
409
|
}
|
|
399
410
|
}
|
|
@@ -432,11 +443,6 @@ export class TCP_transport extends EventEmitter {
|
|
|
432
443
|
}
|
|
433
444
|
assert(!this._onSocketClosedHasBeenCalled);
|
|
434
445
|
this._onSocketClosedHasBeenCalled = true; // we don't want to send close event twice ...
|
|
435
|
-
/**
|
|
436
|
-
* notify the observers that the transport layer has been disconnected.
|
|
437
|
-
* @event socket_closed
|
|
438
|
-
* @param err the Error object or null
|
|
439
|
-
*/
|
|
440
446
|
this.emit("socket_closed", err || null);
|
|
441
447
|
}
|
|
442
448
|
|