node-opcua-server 2.51.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/.mocharc.yml +10 -0
- package/LICENSE +20 -0
- package/dist/base_server.d.ts +110 -0
- package/dist/base_server.js +476 -0
- package/dist/base_server.js.map +1 -0
- package/dist/factory.d.ts +10 -0
- package/dist/factory.js +24 -0
- package/dist/factory.js.map +1 -0
- package/dist/history_server_capabilities.d.ts +35 -0
- package/dist/history_server_capabilities.js +44 -0
- package/dist/history_server_capabilities.js.map +1 -0
- package/dist/i_channel_data.d.ts +13 -0
- package/dist/i_channel_data.js +3 -0
- package/dist/i_channel_data.js.map +1 -0
- package/dist/i_register_server_manager.d.ts +16 -0
- package/dist/i_register_server_manager.js +3 -0
- package/dist/i_register_server_manager.js.map +1 -0
- package/dist/i_server_side_publish_engine.d.ts +36 -0
- package/dist/i_server_side_publish_engine.js +50 -0
- package/dist/i_server_side_publish_engine.js.map +1 -0
- package/dist/i_socket_data.d.ts +11 -0
- package/dist/i_socket_data.js +3 -0
- package/dist/i_socket_data.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/monitored_item.d.ts +173 -0
- package/dist/monitored_item.js +1006 -0
- package/dist/monitored_item.js.map +1 -0
- package/dist/node_sampler.d.ts +3 -0
- package/dist/node_sampler.js +76 -0
- package/dist/node_sampler.js.map +1 -0
- package/dist/opcua_server.d.ts +668 -0
- package/dist/opcua_server.js +2407 -0
- package/dist/opcua_server.js.map +1 -0
- package/dist/queue.d.ts +11 -0
- package/dist/queue.js +71 -0
- package/dist/queue.js.map +1 -0
- package/dist/register_server_manager.d.ts +92 -0
- package/dist/register_server_manager.js +574 -0
- package/dist/register_server_manager.js.map +1 -0
- package/dist/register_server_manager_hidden.d.ts +17 -0
- package/dist/register_server_manager_hidden.js +28 -0
- package/dist/register_server_manager_hidden.js.map +1 -0
- package/dist/register_server_manager_mdns_only.d.ts +19 -0
- package/dist/register_server_manager_mdns_only.js +58 -0
- package/dist/register_server_manager_mdns_only.js.map +1 -0
- package/dist/server_capabilities.d.ts +61 -0
- package/dist/server_capabilities.js +109 -0
- package/dist/server_capabilities.js.map +1 -0
- package/dist/server_end_point.d.ts +180 -0
- package/dist/server_end_point.js +825 -0
- package/dist/server_end_point.js.map +1 -0
- package/dist/server_engine.d.ts +311 -0
- package/dist/server_engine.js +1659 -0
- package/dist/server_engine.js.map +1 -0
- package/dist/server_publish_engine.d.ts +109 -0
- package/dist/server_publish_engine.js +531 -0
- package/dist/server_publish_engine.js.map +1 -0
- package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +16 -0
- package/dist/server_publish_engine_for_orphan_subscriptions.js +50 -0
- package/dist/server_publish_engine_for_orphan_subscriptions.js.map +1 -0
- package/dist/server_session.d.ts +176 -0
- package/dist/server_session.js +734 -0
- package/dist/server_session.js.map +1 -0
- package/dist/server_subscription.d.ts +393 -0
- package/dist/server_subscription.js +1313 -0
- package/dist/server_subscription.js.map +1 -0
- package/dist/sessions_compatible_for_transfer.d.ts +2 -0
- package/dist/sessions_compatible_for_transfer.js +36 -0
- package/dist/sessions_compatible_for_transfer.js.map +1 -0
- package/dist/validate_filter.d.ts +5 -0
- package/dist/validate_filter.js +64 -0
- package/dist/validate_filter.js.map +1 -0
- package/package.json +88 -0
- package/source/base_server.ts +617 -0
- package/source/factory.ts +25 -0
- package/source/history_server_capabilities.ts +75 -0
- package/source/i_channel_data.ts +17 -0
- package/source/i_register_server_manager.ts +24 -0
- package/source/i_server_side_publish_engine.ts +77 -0
- package/source/i_socket_data.ts +11 -0
- package/source/index.ts +14 -0
- package/source/monitored_item.ts +1303 -0
- package/source/node_sampler.ts +82 -0
- package/source/opcua_server.ts +3742 -0
- package/source/queue.ts +73 -0
- package/source/register_server_manager.ts +744 -0
- package/source/register_server_manager_hidden.ts +33 -0
- package/source/register_server_manager_mdns_only.ts +69 -0
- package/source/server_capabilities.ts +177 -0
- package/source/server_end_point.ts +1182 -0
- package/source/server_engine.ts +2167 -0
- package/source/server_publish_engine.ts +657 -0
- package/source/server_publish_engine_for_orphan_subscriptions.ts +52 -0
- package/source/server_session.ts +931 -0
- package/source/server_subscription.ts +1792 -0
- package/source/sessions_compatible_for_transfer.ts +33 -0
- package/source/validate_filter.ts +86 -0
- package/test_helpers/create_certificates.js +1 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-server
|
|
3
|
+
*/
|
|
4
|
+
import { assert } from "node-opcua-assert";
|
|
5
|
+
import { checkDebugFlag, make_debugLog } from "node-opcua-debug";
|
|
6
|
+
import hrtime = require("browser-process-hrtime");
|
|
7
|
+
|
|
8
|
+
const debugLog = make_debugLog(__filename);
|
|
9
|
+
const doDebug = checkDebugFlag(__filename);
|
|
10
|
+
|
|
11
|
+
import { MonitoredItem } from "./monitored_item";
|
|
12
|
+
|
|
13
|
+
const timers: any = {};
|
|
14
|
+
const NS_PER_SEC = 1e9;
|
|
15
|
+
|
|
16
|
+
function sampleMonitoredItem(monitoredItem: MonitoredItem) {
|
|
17
|
+
const _monitoredItem = monitoredItem;
|
|
18
|
+
setImmediate(() => {
|
|
19
|
+
(_monitoredItem as any)._on_sampling_timer();
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function appendToTimer(monitoredItem: MonitoredItem): string {
|
|
24
|
+
const samplingInterval = monitoredItem.samplingInterval;
|
|
25
|
+
const key = samplingInterval.toString();
|
|
26
|
+
assert(samplingInterval > 0);
|
|
27
|
+
let _t = timers[key];
|
|
28
|
+
if (!_t) {
|
|
29
|
+
_t = {
|
|
30
|
+
_samplingId: false,
|
|
31
|
+
monitoredItems: {},
|
|
32
|
+
monitoredItemsCount: 0
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
_t._samplingId = setInterval(() => {
|
|
36
|
+
const start = doDebug ? hrtime() : undefined;
|
|
37
|
+
let counter = 0;
|
|
38
|
+
for (const m in _t.monitoredItems) {
|
|
39
|
+
if (_t.monitoredItems.hasOwnProperty(m)) {
|
|
40
|
+
sampleMonitoredItem(_t.monitoredItems[m]);
|
|
41
|
+
counter++;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (doDebug) {
|
|
45
|
+
const elapsed = hrtime(start);
|
|
46
|
+
debugLog(
|
|
47
|
+
`Sampler ${samplingInterval} ms : Benchmark took ${(
|
|
48
|
+
(elapsed[0] * NS_PER_SEC + elapsed[1]) /
|
|
49
|
+
1000 /
|
|
50
|
+
1000.0
|
|
51
|
+
).toFixed(3)} milliseconds for ${counter} elements`
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
}, samplingInterval);
|
|
55
|
+
timers[key] = _t;
|
|
56
|
+
}
|
|
57
|
+
assert(!_t.monitoredItems[monitoredItem.monitoredItemId]);
|
|
58
|
+
_t.monitoredItems[monitoredItem.monitoredItemId] = monitoredItem;
|
|
59
|
+
_t.monitoredItemsCount++;
|
|
60
|
+
return key;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function removeFromTimer(monitoredItem: MonitoredItem) {
|
|
64
|
+
const samplingInterval = monitoredItem.samplingInterval;
|
|
65
|
+
assert(samplingInterval > 0);
|
|
66
|
+
assert(typeof monitoredItem._samplingId === "string");
|
|
67
|
+
const key = monitoredItem._samplingId as string;
|
|
68
|
+
const _t = timers[key];
|
|
69
|
+
if (!_t) {
|
|
70
|
+
debugLog("cannot find common timer for samplingInterval", key);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
assert(_t);
|
|
74
|
+
assert(_t.monitoredItems[monitoredItem.monitoredItemId]);
|
|
75
|
+
delete _t.monitoredItems[monitoredItem.monitoredItemId];
|
|
76
|
+
_t.monitoredItemsCount--;
|
|
77
|
+
assert(_t.monitoredItemsCount >= 0);
|
|
78
|
+
if (_t.monitoredItemsCount === 0) {
|
|
79
|
+
clearInterval(_t._samplingId);
|
|
80
|
+
delete timers[key];
|
|
81
|
+
}
|
|
82
|
+
}
|