Push module for Mono
Installation
npm install --save mono-push
Then, in your configuration file of your Mono application (example: conf/application.js
):
moduleexports = mono: modules: 'mono-mongodb' 'mono-push'
mono-push requires mono-mongodb, so it must be installed and declared before mono-push because modules are loaded synchronously
Configuration
mono-push will use the push
property of your configuration:
io
: Activate push event via socket.io- Type:
boolean
- Default:
false
- Requires: mono-io
- Type:
collectionName
: Collection name in MongoDB- Type:
string
- Default:
'mono-pushes'
- Type:
Example of activating socket.io
and writing events in pushes
collection (conf/application.js
):
moduleexports = mono: modules: 'mono-mongodb' // Required by mono-push 'mono-io' // Required by mono-push when io is true 'mono-push' push: io: true collectionName: 'pushes'
Usage
In your files, you can access the push
and pushAll
methods like this:
Push an event to authenticated user(s) matching a query
push(event: string, query: object = {}, payload: object = {})
Push an event to all connected sockets
pushAll(event: string, payload: object = {})
Example
const push pushAll = await // userId will be matched against authenticated users await // Send it to all connected devices
With conf io: true
, mono-push will emit an event to every socket connected that matches the query.
On client-side, the user must connect with the socket.io-client:
const socket = const token = '...' // JWT generate by await jwt.generateJWT(session), see Mono socket