Skip to content

Commit

Permalink
Add options to subscribe
Browse files Browse the repository at this point in the history
  • Loading branch information
davedoesdev committed Nov 15, 2016
1 parent 2742e38 commit 89ca418
Show file tree
Hide file tree
Showing 13 changed files with 204 additions and 146 deletions.
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ Coveralls page is [here](https://coveralls.io/r/davedoesdev/mqlobber).
- <a name="toc_mqlobberclienteventserrorerr-obj"></a>[MQlobberClient.events.error](#mqlobberclienteventserrorerr-obj)
- <a name="toc_mqlobberclienteventswarningerr-obj"></a>[MQlobberClient.events.warning](#mqlobberclienteventswarningerr-obj)
- <a name="toc_mqlobberserverfsq-stream-options"></a>[MQlobberServer](#mqlobberserverfsq-stream-options)
- <a name="toc_mqlobberserverprototypesubscribetopic-cb"></a><a name="toc_mqlobberserverprototype"></a>[MQlobberServer.prototype.subscribe](#mqlobberserverprototypesubscribetopic-cb)
- <a name="toc_mqlobberserverprototypesubscribetopic-options-cb"></a><a name="toc_mqlobberserverprototype"></a>[MQlobberServer.prototype.subscribe](#mqlobberserverprototypesubscribetopic-options-cb)
- <a name="toc_mqlobberserverprototypeunsubscribetopic-cb"></a>[MQlobberServer.prototype.unsubscribe](#mqlobberserverprototypeunsubscribetopic-cb)
- <a name="toc_mqlobberservereventssubscribe_requestedtopic-cb"></a><a name="toc_mqlobberserverevents"></a>[MQlobberServer.events.subscribe_requested](#mqlobberservereventssubscribe_requestedtopic-cb)
- <a name="toc_mqlobberservereventsunsubscribe_requestedtopic-cb"></a>[MQlobberServer.events.unsubscribe_requested](#mqlobberservereventsunsubscribe_requestedtopic-cb)
Expand Down Expand Up @@ -403,7 +403,7 @@ client). It also supports the following additional property:

<a name="mqlobberserverprototype"></a>

## MQlobberServer.prototype.subscribe(topic, [cb])
## MQlobberServer.prototype.subscribe(topic, [options], [cb])

> Subscribe the connected client to messages.
Expand All @@ -417,6 +417,11 @@ They can be changed when [constructing the `QlobberFSQ` instance]
(https://github.com/davedoesdev/qlobber-fsq#qlobberfsqoptions) passed to
`MQlobberServer`'s [constructor](#mqlobberserverfsq-stream-options).

- `{Object} [options]` Optional settings for this subscription:
- `{Boolean} subscribe_to_existing` If `true` then the client will be sent
any existing, unexpired messages that match `topic`, as well as new ones.
Defaults to `false` (only new messages).

- `{Function} [cb]` Optional function to call once the subscription has been made. This will be passed the following argument:

- `{Object} err` If an error occurred then details of the error, otherwise `null`.
Expand Down Expand Up @@ -447,7 +452,7 @@ Emitted by a `MQlobberServer` object when it receives a request from its peer
`MQlobberClient` object to subscribe to messages published to a topic.

If there are no listeners on this event, the default action is to call
[`subscribe(topic, cb)`](#mqlobberserverprototypesubscribetopic-cb).
[`subscribe(topic, cb)`](#mqlobberserverprototypesubscribetopic-options-cb).
If you add a listener on this event, the default action will _not_ be called.
This gives you the opportunity to filter subscription requests in the
application.
Expand All @@ -456,11 +461,11 @@ application.

- `{String} topic` The topic to which the client is asking to subscribe.
- `{Function} cb` Function to call after processing the subscription request. This function _must_ be called even if you don't call
[`subscribe`](#mqlobberserverprototypesubscribetopic-cb) yourself.
[`subscribe`](#mqlobberserverprototypesubscribetopic-options-cb) yourself.
It takes a single argument:

- `{Object} err` If `null` then a success status is returned to the client
(whether you called [`subscribe`](#mqlobberserverprototypesubscribetopic-cb) or not).
(whether you called [`subscribe`](#mqlobberserverprototypesubscribetopic-options-cb) or not).
Otherwise, the client gets a failed status and a [`warning`](#mqlobberservereventswarningerr-obj) event is emitted with `err`.

<sub>Go: [TOC](#tableofcontents) | [MQlobberServer.events](#toc_mqlobberserverevents)</sub>
Expand Down
2 changes: 1 addition & 1 deletion coverage/coverage.json

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions coverage/lcov-report/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ <h1>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>370/370</span>
<span class='fraction'>373/373</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>188/188</span>
<span class='fraction'>190/190</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
Expand All @@ -37,7 +37,7 @@ <h1>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>370/370</span>
<span class='fraction'>373/373</span>
</div>
</div>
</div>
Expand Down Expand Up @@ -75,13 +75,13 @@ <h1>
<td class="file high" data-value="mqlobber/lib/"><a href="mqlobber/lib/index.html">mqlobber/lib/</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="368" class="abs high">368/368</td>
<td data-value="371" class="abs high">371/371</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="188" class="abs high">188/188</td>
<td data-value="190" class="abs high">190/190</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="51" class="abs high">51/51</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="368" class="abs high">368/368</td>
<td data-value="371" class="abs high">371/371</td>
</tr>

</tbody>
Expand All @@ -90,7 +90,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Nov 02 2016 21:41:52 GMT+0000 (GMT)
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Nov 15 2016 22:24:52 GMT+0000 (GMT)
</div>
</div>
<script src="prettify.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion coverage/lcov-report/mqlobber/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Nov 02 2016 21:41:52 GMT+0000 (GMT)
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Nov 15 2016 22:24:52 GMT+0000 (GMT)
</div>
</div>
<script src="../prettify.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion coverage/lcov-report/mqlobber/index.js.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Nov 02 2016 21:41:52 GMT+0000 (GMT)
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Nov 15 2016 22:24:52 GMT+0000 (GMT)
</div>
</div>
<script src="../prettify.js"></script>
Expand Down
6 changes: 3 additions & 3 deletions coverage/lcov-report/mqlobber/lib/client.js.html
Original file line number Diff line number Diff line change
Expand Up @@ -1052,12 +1052,12 @@ <h1>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1880×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2818×</span>
<span class="cline-any cline-yes">1879×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1880×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2820×</span>
<span class="cline-any cline-yes">1880×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1880×</span>
Expand Down Expand Up @@ -2278,7 +2278,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Nov 02 2016 21:41:52 GMT+0000 (GMT)
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Nov 15 2016 22:24:52 GMT+0000 (GMT)
</div>
</div>
<script src="../../prettify.js"></script>
Expand Down
14 changes: 7 additions & 7 deletions coverage/lcov-report/mqlobber/lib/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ <h1>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>368/368</span>
<span class='fraction'>371/371</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>188/188</span>
<span class='fraction'>190/190</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
Expand All @@ -37,7 +37,7 @@ <h1>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>368/368</span>
<span class='fraction'>371/371</span>
</div>
</div>
</div>
Expand Down Expand Up @@ -75,13 +75,13 @@ <h1>
<td class="file high" data-value="server.js"><a href="server.js.html">server.js</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="170" class="abs high">170/170</td>
<td data-value="173" class="abs high">173/173</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="88" class="abs high">88/88</td>
<td data-value="90" class="abs high">90/90</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="26" class="abs high">26/26</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="170" class="abs high">170/170</td>
<td data-value="173" class="abs high">173/173</td>
</tr>

</tbody>
Expand All @@ -90,7 +90,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Nov 02 2016 21:41:52 GMT+0000 (GMT)
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Nov 15 2016 22:24:52 GMT+0000 (GMT)
</div>
</div>
<script src="../../prettify.js"></script>
Expand Down
76 changes: 56 additions & 20 deletions coverage/lcov-report/mqlobber/lib/server.js.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ <h1>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>170/170</span>
<span class='fraction'>173/173</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>88/88</span>
<span class='fraction'>90/90</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
Expand All @@ -37,7 +37,7 @@ <h1>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>170/170</span>
<span class='fraction'>173/173</span>
</div>
</div>
</div>
Expand Down Expand Up @@ -515,7 +515,19 @@ <h1>
470
471
472
473</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
473
474
475
476
477
478
479
480
481
482
483
484
485</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes"></span>
<span class="cline-any cline-neutral">&nbsp;</span>
Expand Down Expand Up @@ -568,7 +580,7 @@ <h1>
<span class="cline-any cline-yes"></span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">5×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes"></span>
Expand All @@ -593,8 +605,8 @@ <h1>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1876×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2814×</span>
<span class="cline-any cline-yes">2814×</span>
<span class="cline-any cline-yes">1876×</span>
<span class="cline-any cline-yes">1876×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes"></span>
Expand Down Expand Up @@ -724,7 +736,7 @@ <h1>
<span class="cline-any cline-yes"></span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3×</span>
<span class="cline-any cline-yes">2×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1876×</span>
Expand Down Expand Up @@ -874,10 +886,22 @@ <h1>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes"></span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3586×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3582×</span>
<span class="cline-any cline-yes">3582×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3586×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes"></span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3586×</span>
Expand Down Expand Up @@ -920,29 +944,29 @@ <h1>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes"></span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3344×</span>
<span class="cline-any cline-yes">2406×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">266×</span>
<span class="cline-any cline-yes">266×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3344×</span>
<span class="cline-any cline-yes">2406×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes"></span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3344×</span>
<span class="cline-any cline-yes">2406×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">528×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2816×</span>
<span class="cline-any cline-yes">1878×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes"></span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3344×</span>
<span class="cline-any cline-yes">2406×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3082×</span>
<span class="cline-any cline-yes">2144×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3064×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
Expand All @@ -960,14 +984,14 @@ <h1>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6142×</span>
<span class="cline-any cline-yes">5204×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3064×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3078×</span>
<span class="cline-any cline-yes">2140×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3082×</span>
<span class="cline-any cline-yes">2144×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">262×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
Expand Down Expand Up @@ -1341,13 +1365,25 @@ <h1>
(https://github.com/davedoesdev/qlobber-fsq#qlobberfsqoptions) passed to
`MQlobberServer`'s [constructor](#mqlobberserverfsq-stream-options).
&nbsp;
@param {Object} [options] Optional settings for this subscription:
&nbsp;
- `{Boolean} subscribe_to_existing` If `true` then the client will be sent
any existing, unexpired messages that match `topic`, as well as new ones.
Defaults to `false` (only new messages).
&nbsp;
@param {Function} [cb] Optional function to call once the subscription has been
made. This will be passed the following argument:
&nbsp;
- `{Object} err` If an error occurred then details of the error, otherwise `null`.
*/
MQlobberServer.prototype.subscribe = function (topic, cb)
MQlobberServer.prototype.subscribe = function (topic, options, cb)
{
if (typeof options === 'function')
{
cb = options;
options = undefined;
}
&nbsp;
var ths = this;
&nbsp;
function cb2(err)
Expand All @@ -1364,7 +1400,7 @@ <h1>
&nbsp;
if (!this._done &amp;&amp; !this._subs.has(topic))
{
this.fsq.subscribe(topic, this.handler, function (err)
this.fsq.subscribe(topic, this.handler, options, function (err)
{
if (!err)
{
Expand Down Expand Up @@ -1465,7 +1501,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Nov 02 2016 21:41:52 GMT+0000 (GMT)
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Nov 15 2016 22:24:52 GMT+0000 (GMT)
</div>
</div>
<script src="../../prettify.js"></script>
Expand Down

0 comments on commit 89ca418

Please sign in to comment.