aboutsummaryrefslogtreecommitdiffstats
path: root/protocol.html
diff options
context:
space:
mode:
Diffstat (limited to 'protocol.html')
-rw-r--r--protocol.html367
1 files changed, 262 insertions, 105 deletions
diff --git a/protocol.html b/protocol.html
index 196bb80..922f46e 100644
--- a/protocol.html
+++ b/protocol.html
@@ -1,48 +1,132 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 1
4 2
5<html xmlns="http://www.w3.org/1999/xhtml"> 3<!DOCTYPE html>
6 <head> 4<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
8 6<head>
9 <title>EventMQ Protocol Specification &mdash; EventMQ 0 documentation</title> 7 <meta charset="utf-8">
8
9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11 <title>EventMQ Protocol Specification &mdash; EventMQ 0 documentation</title>
12
13
14
15
16
17
18
19
20
10 21
11 <link rel="stylesheet" href="_static/classic.css" type="text/css" /> 22
12 <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> 23
24
25
26
27 <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
28
29
30
31
32
33 <link rel="top" title="EventMQ 0 documentation" href="index.html"/>
34
35
36 <script src="_static/js/modernizr.min.js"></script>
37
38</head>
39
40<body class="wy-body-for-nav" role="document">
41
42 <div class="wy-grid-for-nav">
43
13 44
14 <script type="text/javascript"> 45 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
15 var DOCUMENTATION_OPTIONS = { 46 <div class="wy-side-scroll">
16 URL_ROOT: './', 47 <div class="wy-side-nav-search">
17 VERSION: '0', 48
18 COLLAPSE_INDEX: false, 49
19 FILE_SUFFIX: '.html', 50
20 HAS_SOURCE: true 51 <a href="index.html" class="icon icon-home"> EventMQ
21 }; 52
22 </script> 53
23 <script type="text/javascript" src="_static/jquery.js"></script> 54
24 <script type="text/javascript" src="_static/underscore.js"></script> 55 </a>
25 <script type="text/javascript" src="_static/doctools.js"></script> 56
26 <link rel="top" title="EventMQ 0 documentation" href="index.html" /> 57
27 </head> 58
28 <body role="document"> 59
29 <div class="related" role="navigation" aria-label="related navigation"> 60 <div class="version">
30 <h3>Navigation</h3> 61 0
31 <ul> 62 </div>
32 <li class="right" style="margin-right: 10px"> 63
33 <a href="genindex.html" title="General Index" 64
34 accesskey="I">index</a></li> 65
35 <li class="right" > 66
36 <a href="py-modindex.html" title="Python Module Index" 67<div role="search">
37 >modules</a> |</li> 68 <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
38 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li> 69 <input type="text" name="q" placeholder="Search docs" />
39 </ul> 70 <input type="hidden" name="check_keywords" value="yes" />
40 </div> 71 <input type="hidden" name="area" value="default" />
41 72 </form>
42 <div class="document"> 73</div>
43 <div class="documentwrapper"> 74
44 <div class="bodywrapper"> 75
45 <div class="body" role="main"> 76 </div>
77
78 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
79
80
81
82 <ul>
83<li class="toctree-l1"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li>
84<li class="toctree-l1"><a class="reference internal" href="receiver.html"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></li>
85<li class="toctree-l1"><a class="reference internal" href="router.html"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></li>
86<li class="toctree-l1"><a class="reference internal" href="sender.html"><code class="docutils literal"><span class="pre">sender</span></code> &#8211; Sender</a></li>
87</ul>
88
89
90
91 </div>
92 </div>
93 </nav>
94
95 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
96
97
98 <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
99 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
100 <a href="index.html">EventMQ</a>
101 </nav>
102
103
104
105 <div class="wy-nav-content">
106 <div class="rst-content">
107
108
109
110
111
112
113<div role="navigation" aria-label="breadcrumbs navigation">
114 <ul class="wy-breadcrumbs">
115 <li><a href="index.html">Docs</a> &raquo;</li>
116
117 <li>EventMQ Protocol Specification</li>
118 <li class="wy-breadcrumbs-aside">
119
120
121 <a href="_sources/protocol.txt" rel="nofollow"> View page source</a>
122
123
124 </li>
125 </ul>
126 <hr/>
127</div>
128 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
129 <div itemprop="articleBody">
46 130
47 <div class="section" id="eventmq-protocol-specification"> 131 <div class="section" id="eventmq-protocol-specification">
48<h1>EventMQ Protocol Specification<a class="headerlink" href="#eventmq-protocol-specification" title="Permalink to this headline">¶</a></h1> 132<h1>EventMQ Protocol Specification<a class="headerlink" href="#eventmq-protocol-specification" title="Permalink to this headline">¶</a></h1>
@@ -112,7 +196,7 @@
112</tr> 196</tr>
113<tr class="row-even"><td>2</td> 197<tr class="row-even"><td>2</td>
114<td>READY</td> 198<td>READY</td>
115<td>Command</td> 199<td>command</td>
116</tr> 200</tr>
117<tr class="row-odd"><td>3</td> 201<tr class="row-odd"><td>3</td>
118<td>_MSGID_</td> 202<td>_MSGID_</td>
@@ -138,9 +222,9 @@
138<p>An <strong>INFORM</strong> command consists of a 5-frame multipart message, formatted as follows.</p> 222<p>An <strong>INFORM</strong> command consists of a 5-frame multipart message, formatted as follows.</p>
139<table border="1" class="docutils"> 223<table border="1" class="docutils">
140<colgroup> 224<colgroup>
141<col width="10%" /> 225<col width="9%" />
142<col width="22%" /> 226<col width="20%" />
143<col width="68%" /> 227<col width="71%" />
144</colgroup> 228</colgroup>
145<thead valign="bottom"> 229<thead valign="bottom">
146<tr class="row-odd"><th class="head">FRAME</th> 230<tr class="row-odd"><th class="head">FRAME</th>
@@ -159,7 +243,7 @@
159</tr> 243</tr>
160<tr class="row-even"><td>2</td> 244<tr class="row-even"><td>2</td>
161<td>INFORM</td> 245<td>INFORM</td>
162<td>&nbsp;</td> 246<td>command</td>
163</tr> 247</tr>
164<tr class="row-odd"><td>3</td> 248<tr class="row-odd"><td>3</td>
165<td>_MSGID_</td> 249<td>_MSGID_</td>
@@ -167,7 +251,7 @@
167</tr> 251</tr>
168<tr class="row-even"><td>4</td> 252<tr class="row-even"><td>4</td>
169<td>_QUEUE_NAME_</td> 253<td>_QUEUE_NAME_</td>
170<td>the name of the queue the worker belongs to</td> 254<td>csv seperated names of queue the worker belongs to</td>
171</tr> 255</tr>
172</tbody> 256</tbody>
173</table> 257</table>
@@ -195,7 +279,7 @@
195</tr> 279</tr>
196<tr class="row-even"><td>2</td> 280<tr class="row-even"><td>2</td>
197<td>READY</td> 281<td>READY</td>
198<td>&nbsp;</td> 282<td>command</td>
199</tr> 283</tr>
200<tr class="row-odd"><td>3</td> 284<tr class="row-odd"><td>3</td>
201<td>_MSGID_</td> 285<td>_MSGID_</td>
@@ -227,7 +311,7 @@
227</tr> 311</tr>
228<tr class="row-even"><td>2</td> 312<tr class="row-even"><td>2</td>
229<td>REPLY</td> 313<td>REPLY</td>
230<td>&nbsp;</td> 314<td>command</td>
231</tr> 315</tr>
232<tr class="row-odd"><td>3</td> 316<tr class="row-odd"><td>3</td>
233<td>_MSGID_</td> 317<td>_MSGID_</td>
@@ -239,69 +323,142 @@
239</tr> 323</tr>
240</tbody> 324</tbody>
241</table> 325</table>
326<p>A <strong>HEARTBEAT</strong> frame consists of a</p>
327<table border="1" class="docutils">
328<colgroup>
329<col width="14%" />
330<col width="33%" />
331<col width="53%" />
332</colgroup>
333<thead valign="bottom">
334<tr class="row-odd"><th class="head">FRAME</th>
335<th class="head">Value</th>
336<th class="head">Description</th>
337</tr>
338</thead>
339<tbody valign="top">
340<tr class="row-even"><td>0</td>
341<td>_EMPTY_</td>
342<td>leave empty</td>
343</tr>
344<tr class="row-odd"><td>1</td>
345<td>eMQP/1.0</td>
346<td>Protocol version</td>
347</tr>
348<tr class="row-even"><td>2</td>
349<td>HEARTBEAT</td>
350<td>command</td>
351</tr>
352<tr class="row-odd"><td>3</td>
353<td>_MSGID_</td>
354<td>A unique id for the msg</td>
355</tr>
356</tbody>
357</table>
358<p>A <strong>DISCONNECT</strong> frame consists of</p>
359<table border="1" class="docutils">
360<colgroup>
361<col width="14%" />
362<col width="33%" />
363<col width="53%" />
364</colgroup>
365<thead valign="bottom">
366<tr class="row-odd"><th class="head">FRAME</th>
367<th class="head">Value</th>
368<th class="head">Description</th>
369</tr>
370</thead>
371<tbody valign="top">
372<tr class="row-even"><td>0</td>
373<td>_EMPTY_</td>
374<td>leave empty</td>
375</tr>
376<tr class="row-odd"><td>1</td>
377<td>eMQP/1.0</td>
378<td>Protocol version</td>
379</tr>
380<tr class="row-even"><td>2</td>
381<td>DISCONNECT</td>
382<td>command</td>
383</tr>
384<tr class="row-odd"><td>3</td>
385<td>_MSGID_</td>
386<td>A unique id for the msg</td>
387</tr>
388</tbody>
389</table>
390</div>
391<div class="section" id="heartbeating">
392<h2>Heartbeating<a class="headerlink" href="#heartbeating" title="Permalink to this headline">¶</a></h2>
393<blockquote>
394<div><ul class="simple">
395<li>HEARTBEAT commands are valid at any time after an INFORM command</li>
396<li>Any command except DISCONNECT act as a heartbeat. Peers SHOULD NOT send HEARTBEAT commands while sending other commands.</li>
397<li>Both worker and broker MUST send heartbeats at regular and agreed-upon intervals.</li>
398<li>If the worker detects that the broker disconnected it SHOULD restart the conversation.</li>
399<li>If the broker detects that a worker has disconnected it should stop sending it a message of any type.</li>
400</ul>
401</div></blockquote>
242</div> 402</div>
243</div> 403</div>
244 404
245 405
406 </div>
246 </div> 407 </div>
247 </div> 408 <footer>
248 </div> 409
249 <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> 410
250 <div class="sphinxsidebarwrapper"> 411 <hr/>
251 <h3><a href="index.html">Table Of Contents</a></h3> 412
252 <ul> 413 <div role="contentinfo">
253<li><a class="reference internal" href="#">EventMQ Protocol Specification</a></li> 414 <p>
254<li><a class="reference internal" href="#goals">Goals</a></li> 415 &copy; Copyright 2015, eventboard.io.
255<li><a class="reference internal" href="#license">License</a></li>
256<li><a class="reference internal" href="#language">Language</a></li>
257<li><a class="reference internal" href="#architecture">Architecture</a><ul>
258<li><a class="reference internal" href="#topology">Topology</a></li>
259<li><a class="reference internal" href="#router-addressing">ROUTER Addressing</a></li>
260<li><a class="reference internal" href="#emqp-client">eMQP / Client</a></li>
261<li><a class="reference internal" href="#emqp-worker">eMQP / Worker</a></li>
262</ul>
263</li>
264</ul>
265 416
266 <div role="note" aria-label="source link">
267 <h3>This Page</h3>
268 <ul class="this-page-menu">
269 <li><a href="_sources/protocol.txt"
270 rel="nofollow">Show Source</a></li>
271 </ul>
272 </div>
273<div id="searchbox" style="display: none" role="search">
274 <h3>Quick search</h3>
275 <form class="search" action="search.html" method="get">
276 <input type="text" name="q" />
277 <input type="submit" value="Go" />
278 <input type="hidden" name="check_keywords" value="yes" />
279 <input type="hidden" name="area" value="default" />
280 </form>
281 <p class="searchtip" style="font-size: 90%">
282 Enter search terms or a module, class or function name.
283 </p> 417 </p>
284</div> 418 </div>
285<script type="text/javascript">$('#searchbox').show(0);</script> 419 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
420
421</footer>
422
286 </div> 423 </div>
287 </div> 424 </div>
288 <div class="clearer"></div> 425
289 </div> 426 </section>
290 <div class="related" role="navigation" aria-label="related navigation"> 427
291 <h3>Navigation</h3> 428 </div>
292 <ul> 429
293 <li class="right" style="margin-right: 10px"> 430
294 <a href="genindex.html" title="General Index" 431
295 >index</a></li> 432
296 <li class="right" > 433
297 <a href="py-modindex.html" title="Python Module Index" 434 <script type="text/javascript">
298 >modules</a> |</li> 435 var DOCUMENTATION_OPTIONS = {
299 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li> 436 URL_ROOT:'./',
300 </ul> 437 VERSION:'0',
301 </div> 438 COLLAPSE_INDEX:false,
302 <div class="footer" role="contentinfo"> 439 FILE_SUFFIX:'.html',
303 &copy; Copyright 2015, eventboard.io. 440 HAS_SOURCE: true
304 Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1. 441 };
305 </div> 442 </script>
306 </body> 443 <script type="text/javascript" src="_static/jquery.js"></script>
444 <script type="text/javascript" src="_static/underscore.js"></script>
445 <script type="text/javascript" src="_static/doctools.js"></script>
446
447
448
449
450
451 <script type="text/javascript" src="_static/js/theme.js"></script>
452
453
454
455
456 <script type="text/javascript">
457 jQuery(function () {
458 SphinxRtdTheme.StickyNav.enable();
459 });
460 </script>
461
462
463</body>
307</html> \ No newline at end of file 464</html> \ No newline at end of file