Overall diagram from the system to the end user
When using the obniz-app-sdk, the configuration can be as shown in the figure.
⚠If you use only obniz.js or WebSocket API directly, you need to implement your processing around scaling.
"worker" is the program for one obniz device.
The App instance works with obnizCloud, and when an app is installed/uninstalled on the device on obnizCloud, it creates/deletes the worker with it.
Since information can be exchanged with the worker instance through the App instance, for example, it is possible to "check the latest device status through the App instance when the API is called and return that information.
Connect to obniz
Setting up obniz
To operate an obniz device, it must be connected to obniz Cloud.
Connection path from the app to the obniz Cloud
The connection from the app server (obniz-app-sdk slave) to the obniz Cloud, enclosed in the green line, is made outbound (from inside to outside).
There is no direct connection from obniz to the app server and vice versa. obniz Cloud (*1) eliminates the need to go beyond NAT.
Therefore, there is no need to open ports.
*1 The obniz Cloud is running as a TURN server as well as an API server.