Add Java/JMS interoperability examples for Artemis.
[stompngo_examples.git] / EXAMPLES.md
blob9110f5b1e78fbd0b23da583337b3c69ee015d116
1 # stompngo_examples - Details #
3 ## Introduction  ##
5 This repository is a set of STOMP client examples using go.
7 These examples use the stomp client package here:
9 [stompngo STOMP client library](https://github.com/gmallard/stompngo)
11 The reader is urged to become familiar with the go documentaion
12 for the *stompngo* package:
14 [stompngo documentation](http://godoc.org/github.com/gmallard/stompngo)<br />
15 [stompngo wiki](https://github.com/gmallard/stompngo/wiki)
17 ## List of Individual Examples  ##
19 A brief explanation of the individual examples follows. The list of consistes
20 of example go, Java, and properties files:
22 <table border="1" style="width:80%;border: 1px solid black;">
23 <tr>
24 <th style="width:20%;border: 1px solid black;padding-left: 10px;" >
25 Example Name
26 </th>
27 <th style="width:60%border: 1px solid black;padding-left: 10px;" >
28 Explanation
29 </th>
30 </tr>
32 <tr>
33 <td style="border: 1px solid black;padding-left: 10px;" >
34 ack/ack.go
35 </td>
36 <td style="border: 1px solid black;padding-left: 10px;" >
37 Example of using ACK to acknowledge received messages.  The STOMP
38 destination should have been previously loaded with message(s).
39 </td>
40 </tr>
42 <tr>
43 <td style="border: 1px solid black;padding-left: 10px;" >
44 conndisc/conndisc.go
45 </td>
46 <td style="border: 1px solid black;padding-left: 10px;" >
47 A very basic demonstration of a 'CONNECT' / 'DISCONNECT' sequence.
48 </td>
49 </tr>
51 <tr>
52 <td style="border: 1px solid black;padding-left: 10px;" >
53 conndisc_tls/conndisc_tls.go
54 </td>
55 <td style="border: 1px solid black;padding-left: 10px;" >
56 A very basic demonstration of a 'CONNECT' / 'DISCONNECT' sequence with
57 ssl (tls).  You must connect to a broker port that is 'ssl/tls' enabled.
58 </td>
59 </tr>
61 <tr>
62 <td style="border: 1px solid black;padding-left: 10px;" >
63 jinterop
64 </td>
65 <td style="border: 1px solid black;padding-left: 10px;" >
66 A subdirectory which contains go and Java examples of a producer and consumer.<br />
67 This demonstrates interoperability between go and Java, and between STOMP and JMS.<br />
68 See individual files for details.<br />
69 This example is ActiveMQ specific, but can be easily adapted for other brokers.<br />
70 It is assumed that the reader is familiar with Java, JMS, and JNDI.<br />
71 A number of helper shell scripts are provided.  See the script descriptions below.<br />
72 These interoperability examples have some hard coded port numbers and path names.<br />
73 </td>
74 </tr>
76 <tr>
77 <td style="border: 1px solid black;padding-left: 10px;" >
78 jinterop/Constants.java
79 </td>
80 <td style="border: 1px solid black;padding-left: 10px;" >
81 Static constants used in the other Java programs in this directory.
82 </td>
83 </tr>
85 <tr>
86 <td style="border: 1px solid black;padding-left: 10px;" >
87 jinterop/jndi.properties
88 </td>
89 <td style="border: 1px solid black;padding-left: 10px;" >
90 The JNDI properties file definition.
91 </td>
92 </tr>
95 <tr>
96 <td style="border: 1px solid black;padding-left: 10px;" >
97 jinterop/log4j.properties
98 </td>
99 <td style="border: 1px solid black;padding-left: 10px;" >
100 The log4j properties file used by the Java code.
101 </td>
102 </tr>
104 <tr>
105 <td style="border: 1px solid black;padding-left: 10px;" >
106 jinterop/gorecv/gorecv.go
107 </td>
108 <td style="border: 1px solid black;padding-left: 10px;" >
109 A message consumer written in go.
110 </td>
111 </tr>
113 <tr>
114 <td style="border: 1px solid black;padding-left: 10px;" >
115 jinterop/gosend/gosend.go
116 </td>
117 <td style="border: 1px solid black;padding-left: 10px;" >
118 A message producer written in go.
119 </td>
120 </tr>
122 <tr>
123 <td style="border: 1px solid black;padding-left: 10px;" >
124 jinterop/Receiver.java
125 </td>
126 <td style="border: 1px solid black;padding-left: 10px;" >
127 A message consumer written in Java using JMS.
128 </td>
129 </tr>
131 <tr>
132 <td style="border: 1px solid black;padding-left: 10px;" >
133 jinterop/Sender.java
134 </td>
135 <td style="border: 1px solid black;padding-left: 10px;" >
136 A message producer written in Java using JMS.
137 </td>
138 </tr>
140 <tr>
141 <td style="border: 1px solid black;padding-left: 10px;" >
142 publish/publish.go
143 </td>
144 <td style="border: 1px solid black;padding-left: 10px;" >
145 A classic 'putter'.  Used to send an arbitrary number of messages to
146 a given destination.
147 </td>
148 </tr>
150 <tr>
151 <td style="border: 1px solid black;padding-left: 10px;" >
152 receipts/onack/onack.go
153 </td>
154 <td style="border: 1px solid black;padding-left: 10px;" >
155 Demonstrate obtaining a RECEIPT for an ACK request.
156 </td>
157 </tr>
159 <tr>
160 <td style="border: 1px solid black;padding-left: 10px;" >
161 receipts/onsend/onsend.go
162 </td>
163 <td style="border: 1px solid black;padding-left: 10px;" >
164 Demonstrate obtaining a RECEIPT for a SEND request.
165 </td>
166 </tr>
168 <tr>
169 <td style="border: 1px solid black;padding-left: 10px;" >
170 recv_mds/recv_mds.go
171 </td>
172 <td style="border: 1px solid black;padding-left: 10px;" >
173 An example intended to demonstrate how different brokers distribute output
174 messages when a client subscribes multiple times to the same destination.
175 </td>
176 </tr>
178 <tr>
179 <td style="border: 1px solid black;padding-left: 10px;" >
180 sngecomm
181 </td>
182 <td style="border: 1px solid black;padding-left: 10px;" >
183 A subdirectory which defines helper code for these examples.
184 </td>
185 </tr>
187 <tr>
188 <td style="border: 1px solid black;padding-left: 10px;" >
189 sngecomm/environment.go
190 </td>
191 <td style="border: 1px solid black;padding-left: 10px;" >
192 Handle overrides from the environment for these examples.
193 </td>
194 </tr>
196 <tr>
197 <td style="border: 1px solid black;padding-left: 10px;" >
198 sngecomm/utilities.go
199 </td>
200 <td style="border: 1px solid black;padding-left: 10px;" >
201 Utility routines used by these examples.
202 </td>
203 </tr>
205 <tr>
206 <td style="border: 1px solid black;padding-left: 10px;" >
207 srmgor_1conn/srmgor_1conn.go
208 </td>
209 <td style="border: 1px solid black;padding-left: 10px;" >
210 Send and receive, many go routines, one *stompngo.Connection.<br />
211 One sender go routine per destination.<br />
212 One receiver go routine per destination.
213 </td>
214 </tr>
216 <tr>
217 <td style="border: 1px solid black;padding-left: 10px;" >
218 srmgor_1smrconn/srmgor_1smrconn.go
219 </td>
220 <td style="border: 1px solid black;padding-left: 10px;" >
221 Send and receive, many go routines.<br />
222 One sender connection, with one go routine per destination.<br />
223 Many receiver connections:<br />
224 one receiver connection per destination (one go routine per connection).<br />
225 </td>
226 </tr>
228 <tr>
229 <td style="border: 1px solid black;padding-left: 10px;" >
230 srmgor_2conn/srmgor_2conn.go
231 </td>
232 <td style="border: 1px solid black;padding-left: 10px;" >
233 Send and receive, two connections.<br />
234 Many go routines in the sender connection.<br />
235 Many go routines in the receiver connection.<br />
236 The receiver go routines illustrate a channel buffering technique that
237 can be used with in bound message data.
238 </td>
239 </tr>
241 <tr>
242 <td style="border: 1px solid black;padding-left: 10px;" >
243 srmgor_manyconn/srmgor_manyconn.go
244 </td>
245 <td style="border: 1px solid black;padding-left: 10px;" >
246 Send and receive.<br />
247 Many sender connections.<br />
248 Many receiver connections.
249 </td>
250 </tr>
252 <tr>
253 <td style="border: 1px solid black;padding-left: 10px;" >
254 subscribe/subscribe.go
255 </td>
256 <td style="border: 1px solid black;padding-left: 10px;" >
257 A basic demonstration of subscribing and receiving messages.
258 </td>
259 </tr>
261 <tr>
262 <td style="border: 1px solid black;padding-left: 10px;" >
263 tlsexamps
264 </td>
265 <td style="border: 1px solid black;padding-left: 10px;" >
266 A subdirectory demonstrating the use of TLS connections.<br />
267 All four primary TLS use cases are demonstrated.<br />
268 UseCase1) Client does not authenticate the broker and broker does not
269 authenticate the client.<br />
270 UseCase2) Client does authenticate the broker but broker does not
271 authenticate the client.<br />
272 UseCase3) Client does not authenticate the broker but broker does
273 authenticate the client.<br />
274 UseCase4) Client does authenticate the broker and broker does
275 authenticate the client.<br />
276 </td>
277 </tr>
279 <tr>
280 <td style="border: 1px solid black;padding-left: 10px;" >
281 tlsexamps/tlsuc1/tlsuc1.go
282 </td>
283 <td style="border: 1px solid black;padding-left: 10px;" >
284 UseCase1) Client does not authenticate the broker and broker does not
285 authenticate the client.
286 </td>
287 </tr>
289 <tr>
290 <td style="border: 1px solid black;padding-left: 10px;" >
291 tlsexamps/tlsuc2/tlsuc2.go
292 </td>
293 <td style="border: 1px solid black;padding-left: 10px;" >
294 UseCase2) Client does authenticate the broker but broker does not
295 authenticate the client.
296 </td>
297 </tr>
299 <tr>
300 <td style="border: 1px solid black;padding-left: 10px;" >
301 tlsexamps/tlsuc3/tlsuc3.go
302 </td>
303 <td style="border: 1px solid black;padding-left: 10px;" >
304 UseCase3) Client does not authenticate the broker but broker does
305 authenticate the client.
306 </td>
307 </tr>
309 <tr>
310 <td style="border: 1px solid black;padding-left: 10px;" >
311 tlsexamps/tlsuc4/tlsuc4.go
312 </td>
313 <td style="border: 1px solid black;padding-left: 10px;" >
314 UseCase4) Client does authenticate the broker and broker does
315 authenticate the client.
316 </td>
317 </tr>
319 </table>
321 ## Shell Scripts  ##
323 This is a list of script files used in the examples.  There are very short
324 scripts and it should be trivial to convert them to Windows .bat / .cmd
325 files if necessary.
327 <table border="1" style="width:80%;border: 1px solid black;">
328 <tr>
329 <th style="width:20%;border: 1px solid black;padding-left: 10px;" >
330 Script Name
331 </th>
332 <th style="width:60%border: 1px solid black;padding-left: 10px;" >
333 Description
334 </th>
335 </tr>
337 <tr>
338 <td style="border: 1px solid black;padding-left: 10px;" >
339 jinterop/clean.sh
340 </td>
341 <td style="border: 1px solid black;padding-left: 10px;" >
342 This is the clean up script for the Java / JMS interoperability examples.<br />
343 It removes all three .class files and the two go executables.
344 </td>
345 </tr>
347 <tr>
348 <td style="border: 1px solid black;padding-left: 10px;" >
349 jinterop/compile.sh
350 </td>
351 <td style="border: 1px solid black;padding-left: 10px;" >
352 This is the compile script for the Java / JMS interoperability examples.<br />
353 It compiles the Java and the go interoperability code.
354 </td>
355 </tr>
357 <tr>
358 <td style="border: 1px solid black;padding-left: 10px;" >
359 jinterop/cp.sh
360 </td>
361 <td style="border: 1px solid black;padding-left: 10px;" >
362 An internal script, sourced by some of the other scripts.<br />
363 It builds a list of jar files that will be included in the Java CLASSPATH.<br />
364 This script should be modified to support your environment.
365 </td>
366 </tr>
368 <tr>
369 <td style="border: 1px solid black;padding-left: 10px;" >
370 jinterop/gorecv.sh
371 </td>
372 <td style="border: 1px solid black;padding-left: 10px;" >
373 This script runs the go receiver/consumer/getter.
374 </td>
375 </tr>
377 <tr>
378 <td style="border: 1px solid black;padding-left: 10px;" >
379 jinterop/gosend.sh
380 </td>
381 <td style="border: 1px solid black;padding-left: 10px;" >
382 This script runs the go sender/producer/putter.
383 </td>
384 </tr>
386 <tr>
387 <td style="border: 1px solid black;padding-left: 10px;" >
388 jinterop/jrecv.sh
389 </td>
390 <td style="border: 1px solid black;padding-left: 10px;" >
391 This script runs the Java receiver/consumer/getter.
392 </td>
393 </tr>
395 <tr>
396 <td style="border: 1px solid black;padding-left: 10px;" >
397 jinterop/jsend.sh
398 </td>
399 <td style="border: 1px solid black;padding-left: 10px;" >
400 This script runs the Java sender/producer/putter.
401 </td>
402 </tr>
404 <tr>
405 <td style="border: 1px solid black;padding-left: 10px;" >
406 srmgor_1conn/run.sh
407 </td>
408 <td style="border: 1px solid black;padding-left: 10px;" >
409 Send and receive, many go routines, one *stompngo.Connection.<br />
410 A logging helper script.
411 </td>
412 </tr>
414 <tr>
415 <td style="border: 1px solid black;padding-left: 10px;" >
416 srmgor_1smrconn/run.sh
417 </td>
418 <td style="border: 1px solid black;padding-left: 10px;" >
419 Send and receive, one sender connection with many go routines,
420 many receiver connections.<br />
421 A logging helper script.
422 </td>
423 </tr>
425 <tr>
426 <td style="border: 1px solid black;padding-left: 10px;" >
427 srmgor_2conn/run.sh
428 </td>
429 <td style="border: 1px solid black;padding-left: 10px;" >
430 Send and receive, one receiver connection with many go routines, one
431 sender connection with many go routines.<br />
432 A logging helper script.
433 </td>
434 </tr>
436 <tr>
437 <td style="border: 1px solid black;padding-left: 10px;" >
438 srmgor_manyconn/run.sh
439 </td>
440 <td style="border: 1px solid black;padding-left: 10px;" >
441 Send and receive, many receiver connections, many sender connections.<br />
442 A logging helper script.
443 </td>
444 </tr>
446 <tr>
447 <td style="border: 1px solid black;padding-left: 10px;" >
448 tlsexamps/tlsuc1/run.sh
449 </td>
450 <td style="border: 1px solid black;padding-left: 10px;" >
451 TLS Use Case 1.<br />
452 Example run script.
453 </td>
454 </tr>
456 <tr>
457 <td style="border: 1px solid black;padding-left: 10px;" >
458 tlsexamps/tlsuc2/runall.sh
459 </td>
460 <td style="border: 1px solid black;padding-left: 10px;" >
461 TLS Use Case 2.<br />
462 Example run script.<br />
463 Three separate runs, using different ports.
464 </td>
465 </tr>
467 <tr>
468 <td style="border: 1px solid black;padding-left: 10px;" >
469 tlsexamps/tlsuc2/run.sh
470 </td>
471 <td style="border: 1px solid black;padding-left: 10px;" >
472 TLS Use Case 2.<br />
473 Example run script.
474 </td>
475 </tr>
478 <tr>
479 <td style="border: 1px solid black;padding-left: 10px;" >
480 tlsexamps/tlsuc3/runall.sh
481 </td>
482 <td style="border: 1px solid black;padding-left: 10px;" >
483 TLS Use Case 3.<br />
484 Example run script.<br />
485 Three separate runs, using different ports.
486 </td>
487 </tr>
489 <tr>
490 <td style="border: 1px solid black;padding-left: 10px;" >
491 tlsexamps/tlsuc3/run.sh
492 </td>
493 <td style="border: 1px solid black;padding-left: 10px;" >
494 TLS Use Case 3.<br />
495 Example run script.
496 </td>
497 </tr>
499 <tr>
500 <td style="border: 1px solid black;padding-left: 10px;" >
501 tlsexamps/tlsuc4/runall.sh
502 </td>
503 <td style="border: 1px solid black;padding-left: 10px;" >
504 TLS Use Case 4.<br />
505 Example run script.<br />
506 Three separate runs, using different ports.
507 </td>
508 </tr>
510 <tr>
511 <td style="border: 1px solid black;padding-left: 10px;" >
512 tlsexamps/tlsuc4/run.sh
513 </td>
514 <td style="border: 1px solid black;padding-left: 10px;" >
515 TLS Use Case 4.<br />
516 Example run script.
517 </td>
518 </tr>
520 </table>
522 ## Variable Names in the Examples  ##
524 Note the author is accustomed to idiomatic go variable names (short if possible).
526 <table border="1" style="width:80%;border: 1px solid black;">
527 <tr>
528 <th style="width:20%;border: 1px solid black;padding-left: 10px;" >
529 Variable Name
530 </th>
531 <th style="width:60%border: 1px solid black;padding-left: 10px;" >
532 Common Use
533 </th>
534 </tr>
536 <tr>
537 <td style="border: 1px solid black;padding-left: 10px;" >
539 </td>
540 <td style="border: 1px solid black;padding-left: 10px;" >
541 Ack headers.  A stompngo.Headers instance.
542 </td>
543 </tr>
545 <tr>
546 <td style="border: 1px solid black;padding-left: 10px;" >
548 </td>
549 <td style="border: 1px solid black;padding-left: 10px;" >
550 A loop couner.  Because in some situations it makes sense. And because
551 writing 'c++' for the end of loop action is amusing.
552 </td>
553 </tr>
555 <tr>
556 <td style="border: 1px solid black;padding-left: 10px;" >
558 </td>
559 <td style="border: 1px solid black;padding-left: 10px;" >
560 Connect headers.  A stompngo.Headers instance, used for the initial
561 CONNECT frame sent to the broker.
562 </td>
563 </tr>
565 <tr>
566 <td style="border: 1px solid black;padding-left: 10px;" >
567 conn
568 </td>
569 <td style="border: 1px solid black;padding-left: 10px;" >
570 A instance of a *stompngo.Connection, usually obtained from a call to
571 stompngo.Connect(...).<br />
572 Rename candidate: sc.
573 </td>
574 </tr>
576 <tr>
577 <td style="border: 1px solid black;padding-left: 10px;" >
579 </td>
580 <td style="border: 1px solid black;padding-left: 10px;" >
581 A stomp destination, type string.  Format and semantics are broker specific.
582 </td>
583 </tr>
585 <tr>
586 <td style="border: 1px solid black;padding-left: 10px;" >
588 </td>
589 <td style="border: 1px solid black;padding-left: 10px;" >
590 Disconnect headers.  A stompngo.Headers instance.
591 </td>
592 </tr>
594 <tr>
595 <td style="border: 1px solid black;padding-left: 10px;" >
597 </td>
598 <td style="border: 1px solid black;padding-left: 10px;" >
599 A time.Duration instance.
600 </td>
601 </tr>
603 <tr>
604 <td style="border: 1px solid black;padding-left: 10px;" >
606 </td>
607 <td style="border: 1px solid black;padding-left: 10px;" >
608 An instance of the go error type.
609 </td>
610 </tr>
612 <tr>
613 <td style="border: 1px solid black;padding-left: 10px;" >
615 </td>
616 <td style="border: 1px solid black;padding-left: 10px;" >
617 A broker's (DNS) host name.
618 </td>
619 </tr>
621 <tr>
622 <td style="border: 1px solid black;padding-left: 10px;" >
624 </td>
625 <td style="border: 1px solid black;padding-left: 10px;" >
626 A host and port name returned from net.JoinHostPort(h, p), type string.<br />
627 Example: localhost:61613.
628 </td>
629 </tr>
631 <tr>
632 <td style="border: 1px solid black;padding-left: 10px;" >
634 </td>
635 <td style="border: 1px solid black;padding-left: 10px;" >
636 A loop counter.
637 </td>
638 </tr>
640 <tr>
641 <td style="border: 1px solid black;padding-left: 10px;" >
643 </td>
644 <td style="border: 1px solid black;padding-left: 10px;" >
645 A (type 4) UUID obtained from calling stompngo.Uuid(), type string.
646 </td>
647 </tr>
649 <tr>
650 <td style="border: 1px solid black;padding-left: 10px;" >
651 irid
652 </td>
653 <td style="border: 1px solid black;padding-left: 10px;" >
654 A receipt id, received from the broker, type string.
655 </td>
656 </tr>
658 <tr>
659 <td style="border: 1px solid black;padding-left: 10px;" >
661 </td>
662 <td style="border: 1px solid black;padding-left: 10px;" >
663 A go logger instance.
664 </td>
665 </tr>
667 <tr>
668 <td style="border: 1px solid black;padding-left: 10px;" >
670 </td>
671 <td style="border: 1px solid black;padding-left: 10px;" >
672 A message count.
673 </td>
674 </tr>
676 <tr>
677 <td style="border: 1px solid black;padding-left: 10px;" >
679 </td>
680 <td style="border: 1px solid black;padding-left: 10px;" >
681 A message count, with type string.
682 </td>
683 </tr>
685 <tr>
686 <td style="border: 1px solid black;padding-left: 10px;" >
688 </td>
689 <td style="border: 1px solid black;padding-left: 10px;" >
690 A stompngo.MessageData instance.  The instance is retrieved from r (i.e.
691 md := &lt;-r)
692 </td>
693 </tr>
695 <tr>
696 <td style="border: 1px solid black;padding-left: 10px;" >
698 </td>
699 <td style="border: 1px solid black;padding-left: 10px;" >
700 A message body, with type string.
701 </td>
702 </tr>
704 <tr>
705 <td style="border: 1px solid black;padding-left: 10px;" >
707 </td>
708 <td style="border: 1px solid black;padding-left: 10px;" >
709 A message body, with addional data, type string.
710 </td>
711 </tr>
713 <tr>
714 <td style="border: 1px solid black;padding-left: 10px;" >
716 </td>
717 <td style="border: 1px solid black;padding-left: 10px;" >
718 An implementation of the net.Conn interface, obtained by calling
719 net.Dial.
720 </td>
721 </tr>
723 <tr>
724 <td style="border: 1px solid black;padding-left: 10px;" >
725 nmsgs
726 </td>
727 <td style="border: 1px solid black;padding-left: 10px;" >
728 The number of messages to process (produce/consume).<br />
729 Rename candidate: nm.
730 </td>
731 </tr>
733 <tr>
734 <td style="border: 1px solid black;padding-left: 10px;" >
736 </td>
737 <td style="border: 1px solid black;padding-left: 10px;" >
738 The number of destinations to use.<br />
739 Rename candidate: nd.
740 </td>
741 </tr>
743 <tr>
744 <td style="border: 1px solid black;padding-left: 10px;" >
746 </td>
747 <td style="border: 1px solid black;padding-left: 10px;" >
748 The number of receiver go routines.
749 </td>
750 </tr>
752 <tr>
753 <td style="border: 1px solid black;padding-left: 10px;" >
755 </td>
756 <td style="border: 1px solid black;padding-left: 10px;" >
757 A broker's listener port.
758 </td>
759 </tr>
761 <tr>
762 <td style="border: 1px solid black;padding-left: 10px;" >
764 </td>
765 <td style="border: 1px solid black;padding-left: 10px;" >
766 The print byte count.  When message bodies are printed, this is the
767 maximum number of bytes to print.  Useful when message body sizes are
768 large.  This is arbitrarily set to 64 unless overridden.  If this is
769 set to 0, message bodies are (usually) not printed at all.<br />
770 Rename candidate: pc.<br />
771 TODO: consistently print no message body if this is &lt;= 0.
772 </td>
773 </tr>
775 <tr>
776 <td style="border: 1px solid black;padding-left: 10px;" >
778 </td>
779 <td style="border: 1px solid black;padding-left: 10px;" >
780 A channel of type bool, used for signaling event completion.
781 </td>
782 </tr>
784 <tr>
785 <td style="border: 1px solid black;padding-left: 10px;" >
787 </td>
788 <td style="border: 1px solid black;padding-left: 10px;" >
789 A queue number identifier.  Used in a looping control structure for a
790 variable number of queues, or as a method parameter.
791 </td>
792 </tr>
794 <tr>
795 <td style="border: 1px solid black;padding-left: 10px;" >
797 </td>
798 <td style="border: 1px solid black;padding-left: 10px;" >
799 A queue number identifier, type string (from qn).
800 </td>
801 </tr>
803 <tr>
804 <td style="border: 1px solid black;padding-left: 10px;" >
806 </td>
807 <td style="border: 1px solid black;padding-left: 10px;" >
808 Used in the sngecomm subpackage only, for several reasons.<br />
809 TODO:  this needs to change to a more meaningful variable name and
810 documentation for same added.
811 </td>
812 </tr>
814 <tr>
815 <td style="border: 1px solid black;padding-left: 10px;" >
817 </td>
818 <td style="border: 1px solid black;padding-left: 10px;" >
819 A receipt message from the broker. An instance of type stompngo.MessageData.
820 </td>
821 </tr>
823 <tr>
824 <td style="border: 1px solid black;padding-left: 10px;" >
826 </td>
827 <td style="border: 1px solid black;padding-left: 10px;" >
828 A receive wait time multiplier.
829 </td>
830 </tr>
832 <tr>
833 <td style="border: 1px solid black;padding-left: 10px;" >
835 </td>
836 <td style="border: 1px solid black;padding-left: 10px;" >
837 A receipt id, type string.
838 </td>
839 </tr>
842 <tr>
843 <td style="border: 1px solid black;padding-left: 10px;" >
845 </td>
846 <td style="border: 1px solid black;padding-left: 10px;" >
847 A wait flag used by receivers. When set to true, receivers wait for a
848 random amount of time after each message red.
849 </td>
850 </tr>
852 <tr>
853 <td style="border: 1px solid black;padding-left: 10px;" >
855 </td>
856 <td style="border: 1px solid black;padding-left: 10px;" >
857 Subscribe headers.  A stompngo.Headers instance.
858 </td>
859 </tr>
861 <tr>
862 <td style="border: 1px solid black;padding-left: 10px;" >
864 </td>
865 <td style="border: 1px solid black;padding-left: 10px;" >
866 A channel of type stompngo.MessageData.  Used in example code to
867 receive messages and metadata from the broker.
868 </td>
869 </tr>
872 <tr>
873 <td style="border: 1px solid black;padding-left: 10px;" >
875 </td>
876 <td style="border: 1px solid black;padding-left: 10px;" >
877 A send wait time multiplier.
878 </td>
879 </tr>
881 <tr>
882 <td style="border: 1px solid black;padding-left: 10px;" >
884 </td>
885 <td style="border: 1px solid black;padding-left: 10px;" >
886 Send headers.  A stompngo.Headers instance.
887 </td>
888 </tr>
890 <tr>
891 <td style="border: 1px solid black;padding-left: 10px;" >
893 </td>
894 <td style="border: 1px solid black;padding-left: 10px;" >
895 A wait flag used by senders. When set to true, senders wait for a
896 random amount of time after each send.
897 </td>
898 </tr>
900 <tr>
901 <td style="border: 1px solid black;padding-left: 10px;" >
903 </td>
904 <td style="border: 1px solid black;padding-left: 10px;" >
905 A loop counter formatted as a string.
906 </td>
907 </tr>
909 <tr>
910 <td style="border: 1px solid black;padding-left: 10px;" >
912 </td>
913 <td style="border: 1px solid black;padding-left: 10px;" >
914 An instance of *tls.Config.
915 </td>
916 </tr>
918 <tr>
919 <td style="border: 1px solid black;padding-left: 10px;" >
921 </td>
922 <td style="border: 1px solid black;padding-left: 10px;" >
923 A time.Timer.
924 </td>
925 </tr>
927 <tr>
928 <td style="border: 1px solid black;padding-left: 10px;" >
930 </td>
931 <td style="border: 1px solid black;padding-left: 10px;" >
932 Wait group for all sender and receiver go routines.
933 </td>
934 </tr>
936 <tr>
937 <td style="border: 1px solid black;padding-left: 10px;" >
939 </td>
940 <td style="border: 1px solid black;padding-left: 10px;" >
941 Wait group for all receiver go routines.
942 </td>
943 </tr>
946 <tr>
947 <td style="border: 1px solid black;padding-left: 10px;" >
949 </td>
950 <td style="border: 1px solid black;padding-left: 10px;" >
951 Wait group for all sender go routines.
952 </td>
953 </tr>
955 <tr>
956 <td style="border: 1px solid black;padding-left: 10px;" >
958 </td>
959 <td style="border: 1px solid black;padding-left: 10px;" >
960 Work headers.  A stompngo.Headers instance.
961 </td>
962 </tr>
964 </table>
966 ## Variable Names Specific to the TLS Examples  ##
968 <table border="1" style="width:80%;border: 1px solid black;">
969 <tr>
970 <th style="width:20%;border: 1px solid black;padding-left: 10px;" >
971 Variable Name
972 </th>
973 <th style="width:60%border: 1px solid black;padding-left: 10px;" >
974 Common Use
975 </th>
976 </tr>
978 <tr>
979 <td style="border: 1px solid black;padding-left: 10px;" >
981 </td>
982 <td style="border: 1px solid black;padding-left: 10px;" >
983 A buffer, type []byte.
984 </td>
985 </tr>
987 <tr>
988 <td style="border: 1px solid black;padding-left: 10px;" >
990 </td>
991 <td style="border: 1px solid black;padding-left: 10px;" >
992 An instance of *x509.Certificate.
993 </td>
994 </tr>
996 <tr>
997 <td style="border: 1px solid black;padding-left: 10px;" >
999 </td>
1000 <td style="border: 1px solid black;padding-left: 10px;" >
1001 An instance of tls.Certificate.
1002 </td>
1003 </tr>
1005 <tr>
1006 <td style="border: 1px solid black;padding-left: 10px;" >
1007 cliCertFile
1008 </td>
1009 <td style="border: 1px solid black;padding-left: 10px;" >
1010 The full file name of the client's public cert in PEM format.
1011 </td>
1012 </tr>
1015 <tr>
1016 <td style="border: 1px solid black;padding-left: 10px;" >
1017 cliKeyFile
1018 </td>
1019 <td style="border: 1px solid black;padding-left: 10px;" >
1020 The full file name of the client's private key in PEM format.
1021 </td>
1022 </tr>
1024 <tr>
1025 <td style="border: 1px solid black;padding-left: 10px;" >
1027 </td>
1028 <td style="border: 1px solid black;padding-left: 10px;" >
1029 An instance of error.
1030 </td>
1031 </tr>
1033 <tr>
1034 <td style="border: 1px solid black;padding-left: 10px;" >
1036 </td>
1037 <td style="border: 1px solid black;padding-left: 10px;" >
1038 An instance of *pem.Block.
1039 </td>
1040 </tr>
1042 <tr>
1043 <td style="border: 1px solid black;padding-left: 10px;" >
1045 </td>
1046 <td style="border: 1px solid black;padding-left: 10px;" >
1047 A logger instance.
1048 </td>
1049 </tr>
1051 <tr>
1052 <td style="border: 1px solid black;padding-left: 10px;" >
1054 </td>
1055 <td style="border: 1px solid black;padding-left: 10px;" >
1056 A pointer to a tls configuration, type *tls.Config, obtained from
1057 'tls.Client'.
1058 </td>
1059 </tr>
1061 <tr>
1062 <td style="border: 1px solid black;padding-left: 10px;" >
1063 svrCAFile
1064 </td>
1065 <td style="border: 1px solid black;padding-left: 10px;" >
1066 The full file name of the server CA's public cert in PEM format.
1067 </td>
1068 </tr>
1070 <tr>
1071 <td style="border: 1px solid black;padding-left: 10px;" >
1073 </td>
1074 <td style="border: 1px solid black;padding-left: 10px;" >
1075 An implementation of the net.Conn interface, obtained by calling
1076 net.Dial.
1077 </td>
1078 </tr>
1080 <tr>
1081 <td style="border: 1px solid black;padding-left: 10px;" >
1083 </td>
1084 <td style="border: 1px solid black;padding-left: 10px;" >
1085 A pointer to a tls configuration, type *tls.Config, obtained from 'new'.
1086 </td>
1087 </tr>
1089 </table>