motion-master-bridge
v2.0.0-beta.3
Published
Bridges the Motion Master ZeroMQ sockets to browser clients over WebSocket connections
Downloads
2
Readme
motion-master-bridge
Bridges the Motion Master ZeroMQ sockets to browser clients over WebSocket connections.
The type of ZeroMQ sockets used are:
- ROUTER/DEALER named server where ROUTER socket is on the side of Motion Master (server) and multiple DEALER sockets on the side of Motion Master Bridge (clients). For every new WebSocket connection an accompanying DEALER socket is created. When WebSocket client is disconnected, the accompanying DEALER socket is closed. Motion Master will keep track of heartbeats for all clients. Every new WebSocket client is given a unique client identity on DEALER socket. Client identity ensures that asynchronous request/response messages are sent back to the right client.
- PUB/SUB named monitor where publisher is Motion Master and subscriber is Motion Master Bridge. Messages received on this socket are broadcasted to all WebSocket clients.
Motion Master Bridge takes care of keeping clients online by sending heartbeat messages to Motion Master in specified interval and notifying clients that Motion Master is alive by handling its heartbeat message. When Motion Master goes offline or comes back online all clients will be notified with alive flag.
Run
$ npm start
Build and run Docker container
$ docker build -t synapticon/motion-master-bridge .
$ docker run -d --name=motion-master-bridge --network=host --restart=always synapticon/motion-master-bridge
Read more about host network at Docker run reference - Network settings.
Develop
$ npm run watch
$ npm run nodemon