node-opcua-server 2.156.0 → 2.158.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.
Files changed (54) hide show
  1. package/dist/addressSpace_accessor.js +1 -0
  2. package/dist/addressSpace_accessor.js.map +1 -1
  3. package/dist/base_server.js +7 -1
  4. package/dist/base_server.js.map +1 -1
  5. package/dist/factory.js +1 -0
  6. package/dist/factory.js.map +1 -1
  7. package/dist/history_server_capabilities.js +14 -0
  8. package/dist/history_server_capabilities.js.map +1 -1
  9. package/dist/i_register_server_manager.d.ts +63 -3
  10. package/dist/i_register_server_manager.js +47 -0
  11. package/dist/i_register_server_manager.js.map +1 -1
  12. package/dist/i_server_side_publish_engine.js +4 -0
  13. package/dist/i_server_side_publish_engine.js.map +1 -1
  14. package/dist/index.d.ts +22 -0
  15. package/dist/index.js +22 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/monitored_item.d.ts +3 -6
  18. package/dist/monitored_item.js +44 -17
  19. package/dist/monitored_item.js.map +1 -1
  20. package/dist/opcua_server.js +44 -26
  21. package/dist/opcua_server.js.map +1 -1
  22. package/dist/queue.js +2 -1
  23. package/dist/queue.js.map +1 -1
  24. package/dist/register_server_manager.d.ts +14 -26
  25. package/dist/register_server_manager.js +282 -293
  26. package/dist/register_server_manager.js.map +1 -1
  27. package/dist/register_server_manager_hidden.d.ts +4 -3
  28. package/dist/register_server_manager_hidden.js +7 -5
  29. package/dist/register_server_manager_hidden.js.map +1 -1
  30. package/dist/register_server_manager_mdns_only.d.ts +5 -3
  31. package/dist/register_server_manager_mdns_only.js +25 -14
  32. package/dist/register_server_manager_mdns_only.js.map +1 -1
  33. package/dist/server_capabilities.js +33 -0
  34. package/dist/server_capabilities.js.map +1 -1
  35. package/dist/server_end_point.js +29 -3
  36. package/dist/server_end_point.js.map +1 -1
  37. package/dist/server_engine.js +20 -3
  38. package/dist/server_engine.js.map +1 -1
  39. package/dist/server_publish_engine.js +95 -98
  40. package/dist/server_publish_engine.js.map +1 -1
  41. package/dist/server_session.js +33 -5
  42. package/dist/server_session.js.map +1 -1
  43. package/dist/server_subscription.js +70 -15
  44. package/dist/server_subscription.js.map +1 -1
  45. package/dist/user_manager.js +1 -0
  46. package/dist/user_manager.js.map +1 -1
  47. package/package.json +49 -47
  48. package/source/i_register_server_manager.ts +66 -5
  49. package/source/index.ts +22 -0
  50. package/source/monitored_item.ts +28 -19
  51. package/source/opcua_server.ts +33 -23
  52. package/source/register_server_manager.ts +294 -354
  53. package/source/register_server_manager_hidden.ts +6 -5
  54. package/source/register_server_manager_mdns_only.ts +25 -14
@@ -2,7 +2,7 @@
2
2
  * @module node-opcua-server
3
3
  */
4
4
  import { EventEmitter } from "events";
5
- import { IRegisterServerManager } from "./i_register_server_manager";
5
+ import { IRegisterServerManager, RegisterServerManagerStatus } from "./i_register_server_manager";
6
6
 
7
7
  /**
8
8
  * a IRegisterServerManager that hides the server from any local discover server
@@ -17,15 +17,16 @@ export class RegisterServerManagerHidden extends EventEmitter implements IRegist
17
17
  super();
18
18
  }
19
19
 
20
- public stop(callback: () => void): void {
21
- setImmediate(callback);
20
+ public async stop(): Promise<void> {
22
21
  }
23
22
 
24
- public start(callback: () => void): void {
25
- setImmediate(callback);
23
+ public async start(): Promise<void> {
26
24
  }
27
25
 
28
26
  public dispose(): void {
29
27
  //
30
28
  }
29
+ public getState(): RegisterServerManagerStatus {
30
+ return RegisterServerManagerStatus.NOT_APPLICABLE;
31
+ }
31
32
  }
@@ -7,7 +7,7 @@ import { EventEmitter } from "events";
7
7
  import { assert } from "node-opcua-assert";
8
8
  import { BonjourHolder } from "node-opcua-service-discovery";
9
9
  import { OPCUABaseServer } from "./base_server";
10
- import { IRegisterServerManager } from "./i_register_server_manager";
10
+ import { IRegisterServerManager, RegisterServerManagerStatus } from "./i_register_server_manager";
11
11
 
12
12
  /**
13
13
  * a RegisterServerManager that declare the server the OPCUA Bonjour service
@@ -18,6 +18,7 @@ export class RegisterServerManagerMDNSONLY extends EventEmitter implements IRegi
18
18
 
19
19
  private server?: OPCUABaseServer;
20
20
  private bonjour: BonjourHolder;
21
+ private _state: RegisterServerManagerStatus = RegisterServerManagerStatus.NOT_APPLICABLE;
21
22
 
22
23
  constructor(options: { server: OPCUABaseServer }) {
23
24
  super();
@@ -25,18 +26,20 @@ export class RegisterServerManagerMDNSONLY extends EventEmitter implements IRegi
25
26
  assert(this.server);
26
27
  assert(this.server instanceof OPCUABaseServer);
27
28
  this.bonjour = new BonjourHolder();
29
+ this._state = RegisterServerManagerStatus.INITIALIZING;
28
30
  }
29
31
 
30
- public stop(callback: () => void): void {
32
+ public async stop(): Promise<void> {
31
33
  if (this.bonjour) {
32
- this.bonjour.stopAnnouncedOnMulticastSubnetWithCallback(()=>{
33
- this.emit("serverUnregistered");
34
- setImmediate(callback);
35
- });
34
+
35
+ this._state = RegisterServerManagerStatus.UNREGISTERING;
36
+ await this.bonjour.stopAnnouncedOnMulticastSubnet();
37
+ this.emit("serverUnregistered");
38
+ this._state = RegisterServerManagerStatus.INACTIVE;
36
39
  }
37
40
  }
38
41
 
39
- public start(callback: () => void): void {
42
+ public async start(): Promise<void> {
40
43
  // istanbul ignore next
41
44
  if (!this.server) {
42
45
  throw new Error("internal error");
@@ -44,16 +47,21 @@ export class RegisterServerManagerMDNSONLY extends EventEmitter implements IRegi
44
47
  assert(this.server instanceof OPCUABaseServer);
45
48
 
46
49
  const host = "TODO-find how to extract hostname";
47
- this.bonjour.announcedOnMulticastSubnetWithCallback({
48
- capabilities: this.server.capabilitiesForMDNS,
49
- name: this.server.serverInfo.applicationUri!,
50
+ const capabilities = this.server.capabilitiesForMDNS;
51
+ const name = this.server.serverInfo.applicationUri!;
52
+ const port = this.server.endpoints[0].port;
53
+
54
+
55
+ this._state = RegisterServerManagerStatus.REGISTERING;
56
+ await this.bonjour.announcedOnMulticastSubnet({
57
+ capabilities: capabilities,
58
+ name: name,
50
59
  path: "/", // <- to do
51
60
  host,
52
- port: this.server.endpoints[0].port
53
- }, ()=>{
54
- this.emit("serverRegistered");
55
- setImmediate(callback);
61
+ port: port
56
62
  });
63
+ this._state = RegisterServerManagerStatus.WAITING;
64
+ this.emit("serverRegistered");
57
65
  }
58
66
 
59
67
  public dispose(): void {
@@ -61,4 +69,7 @@ export class RegisterServerManagerMDNSONLY extends EventEmitter implements IRegi
61
69
  assert(this.server);
62
70
  this.server = undefined;
63
71
  }
72
+ public getState(): RegisterServerManagerStatus {
73
+ return this._state;
74
+ }
64
75
  }