1 | module.exports = InMemory
|
2 |
|
3 | var uuid = require('node-uuid')
|
4 |
|
5 | function InMemory (opts) {
|
6 | opts = opts || {}
|
7 | this.uris = opts.uris || {}
|
8 | this.subscribers = opts.subscribers || {}
|
9 | }
|
10 |
|
11 | InMemory.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 |
|
29 | InMemory.prototype.get = function (uri, callback) {
|
30 | return callback(null, this.subscribers[uri] || {})
|
31 | }
|