sony / nmos-cpp

An NMOS (Networked Media Open Specifications) Registry and Node in C++ (IS-04, IS-05)
Apache License 2.0
141 stars 80 forks source link

Is it impossible to register resources simultaneously? #359

Closed naeoc4509 closed 9 months ago

naeoc4509 commented 9 months ago

I registered 'one receiver' on both sides of two different machines with nmos-cpp installed, I want to check the registry status on each machine. But when I tested it, The receiver is registered only on one of the two machines, and cannot be registered at the same time. Is it impossible to register resources simultaneously? If possible, how should I set it up?

jonathan-r-thorpe commented 9 months ago

Yes, it is possible to register many resources simultaneously.

This sort of problem often happens if there is more than one registry running on your network. It is also worth checking that each node is configured to correctly to discover your registry.

If this isn't the problem then please provide details of the platform you are running on as well as the logs of the nodes and registry.

naeoc4509 commented 9 months ago

That's right, because I'm trying to install and use nmos cpp 'docker', I want to use a registry for each machine on one network. Is it 'MUST' to have only one registry in one network?

For example, when there are machines A, B, and C in one network and they are set as follows, A - node0, device0, receiver0, sender 0 B - nmos docker (with registry), node1, device1, sender 1, receiver1 C - nmos docker (with registry), node2, device2, sender 2, receiver2

In the registry of machine B, (A B C are all registered,) so I can see all the nodes of A, B, C registered with B's ip:8010 port. Even on machine C, (A B C is all registered) in the registry, so I can see all the nodes of A, B, C registered with C's ip:8010 port, at the same time?

jonathan-r-thorpe commented 9 months ago

It is possible to have more than one registry on the network - each registry has a priority which can be configured in the registry config.json.

However, for development purposes it is simpler to have a single registry for your whole network. I suggest disabling all but one registry and see if that resolves matters.

garethsb commented 9 months ago

This is a feature of the NMOS spec, a Node is only registered with one Registration API at a time. This is described in IS-04 Registered Operation.

Two (or more) Registry instances MAY share a common backend, so that Nodes using either of their Registration APIs makes those resources visible in the Query API of both instances. But nmos-cpp does not support this out-of-the-box.

naeoc4509 commented 9 months ago

Thank you so much! so helpful!