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:Stringmessage:String
Send a message to a room, the message will be broadcast to all consumers in the room.
room:StringconsumerId:Stringcallback:Function
room:StringconsumerId:Stringcallback:Function
method:Stringparams:Object|Arraycallback:Function
Close the producer client.