Snapper producer client for node.js.
Snapper-producer
is tested in Snapper
Snapper-core Teambition push messaging service
var Producer = require('snapper-producer')
var producer = new Producer(7800, 'http://snapper.project.bi', {
producerId: 'testProducerId',
secretKeys: ["tokenXXXXXXX"]
})
// generate a token for a consumer
var token = producer.signAuth({userId: 'userIdxxx'})
// send a message to a room
producer.sendMessage('room', 'message')
producer.sendMessage('projects/51762b8f78cfa9f357000011', '{"e":":remove:tasks","d":"553f569aca14974c5f806a01"}')
producer.joinRoom('projects/51762b8f78cfa9f357000011', 'lkoH6jeg8ATcptZQFHHH7w~~')(function (err, res) {/*...*/})
producer.leaveRoom('projects/51762b8f78cfa9f357000011', 'lkoH6jeg8ATcptZQFHHH7w~~')(function (err, res) {/*...*/})
producer.request('consumers', ['userIdxxx'])(function (err, res) {
console.log(err, res) // {length: 1, android: 0, ios: 0, web: 1}
})
var Producer = require('snapper-producer')
var producer = new Producer(7700, '127.0.0.1', {
secretKeys: 'secretKeyXXX',
producerId: 'myproducerId'
})
-
port
:Number
, Snapper server port. -
host
:String
, Snapper server host, default to'127.0.0.1'
. -
options.producerId
:String
, producer's name, use for log. -
options.secretKeys
: A array of string or buffer containing either the secret for HMAC algorithms, or the PEM encoded private key for RSA and ECDSA. -
options.expiresIn
: default to3600 * 24
, one day. -
options.algorithm
:String
, default to'HS256'
.
payload
:Object
.
Generate a token string. payload
should have userId
property and type
property that Snapper server determine which room the consumer should auto join (similar to handshake).
room
:String
message
:String
Send a message to a room, the message will be broadcast to all consumers in the room.
room
:String
consumerId
:String
callback
:Function
room
:String
consumerId
:String
callback
:Function
method
:String
params
:Object|Array
callback
:Function
Close the producer client.