@loopback/socketio
Stability: :warning: Experimental :warning:
This module uses socket.io to expose controllers as WebSocket friendly endpoints.
Use Cases
-
A real time application would like to use WebSocket friendly APIs to manage subscriptions, participants (rooms) and message exchanges.
-
Make it easy for API developers to expose WebSocket friendly APIs without learning a lot of low level concepts.
-
Use it as a step stone to explore messaging oriented API paradigms and programming models, such as pub/sub, eventing, streaming, and reactive.
High Level Design
The package will provide the following key constructs:
-
SocketIoServer: A new server type that listens on incoming WebSocket connections and dispatches messages to controllers that subscribe to the namespace. Each server is attached to an http/https endpoint.
-
SocketIo controller: A controller class that is decorated with SocketIo related metadata, including:
- Map to a namespace
- Connect/disconnect events
- Subscribe/consume messages
- Publish/produce messages
-
SocketIo middleware or sequence
- Allow common logic to intercept/process WebSocket messages
Basic Use
- Create a SocketIoServer
- Define a controller to handle socket.io events/messages
- Register the controller
- Discover socket.io controllers and mount them to the SocketIoServer namespaces.
Sample application
Installation
npm install --save @loopback/socketio
Contributions
Tests
Run npm test
from the root folder.
Contributors
See all contributors.
License
MIT