UNPKG

668 BJavaScriptView Raw
1module.exports = InMemory
2
3var uuid = require('node-uuid')
4
5function InMemory (opts) {
6 opts = opts || {}
7 this.uris = opts.uris || {}
8 this.subscribers = opts.subscribers || {}
9}
10
11InMemory.prototype.subscribe = function (uri, client, callback) {
12 var self = this
13 this.uris[uri] = true
14
15 if (!this.subscribers[uri]) {
16 this.subscribers[uri] = {}
17 }
18
19 client.uuid = uuid.v1()
20 this.subscribers[uri][client.uuid] = client
21
22 client.on('close', function () {
23 delete self.subscribers[uri][client.uuid]
24 })
25
26 return callback(null, client.uuid)
27}
28
29InMemory.prototype.get = function (uri, callback) {
30 return callback(null, this.subscribers[uri] || {})
31}