1 # stompngo_examples - Details #
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;">
24 <th style="width:20%;border: 1px solid black;padding-left: 10px;" >
27 <th style="width:60%border: 1px solid black;padding-left: 10px;" >
33 <td style="border: 1px solid black;padding-left: 10px;" >
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).
43 <td style="border: 1px solid black;padding-left: 10px;" >
46 <td style="border: 1px solid black;padding-left: 10px;" >
47 A very basic demonstration of a 'CONNECT' / 'DISCONNECT' sequence.
52 <td style="border: 1px solid black;padding-left: 10px;" >
53 conndisc_tls/conndisc_tls.go
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.
62 <td style="border: 1px solid black;padding-left: 10px;" >
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 Examples are provided for ActiveMQ and Artemis. Only the ActiveMQ artifacts are described here.<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 />
77 <td style="border: 1px solid black;padding-left: 10px;" >
78 jinterop/activemq/Constants.java
80 <td style="border: 1px solid black;padding-left: 10px;" >
81 Static constants used in the other Java programs in this directory.
86 <td style="border: 1px solid black;padding-left: 10px;" >
87 jinterop/activemq/jndi.properties
89 <td style="border: 1px solid black;padding-left: 10px;" >
90 The JNDI properties file definition.
96 <td style="border: 1px solid black;padding-left: 10px;" >
97 jinterop/activemq/log4j.properties
99 <td style="border: 1px solid black;padding-left: 10px;" >
100 The log4j properties file used by the Java code.
105 <td style="border: 1px solid black;padding-left: 10px;" >
106 jinterop/activemq/gorecv/gorecv.go
108 <td style="border: 1px solid black;padding-left: 10px;" >
109 A message consumer written in go.
114 <td style="border: 1px solid black;padding-left: 10px;" >
115 jinterop/activemq/gosend/gosend.go
117 <td style="border: 1px solid black;padding-left: 10px;" >
118 A message producer written in go.
123 <td style="border: 1px solid black;padding-left: 10px;" >
124 jinterop/activemq/Receiver.java
126 <td style="border: 1px solid black;padding-left: 10px;" >
127 A message consumer written in Java using JMS.
132 <td style="border: 1px solid black;padding-left: 10px;" >
133 jinterop/activemq/Sender.java
135 <td style="border: 1px solid black;padding-left: 10px;" >
136 A message producer written in Java using JMS.
141 <td style="border: 1px solid black;padding-left: 10px;" >
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 or destinations.
151 <td style="border: 1px solid black;padding-left: 10px;" >
152 receipts/onack/onack.go
154 <td style="border: 1px solid black;padding-left: 10px;" >
155 Demonstrate obtaining a RECEIPT for an ACK request.
160 <td style="border: 1px solid black;padding-left: 10px;" >
161 receipts/onsend/onsend.go
163 <td style="border: 1px solid black;padding-left: 10px;" >
164 Demonstrate obtaining a RECEIPT for a SEND request.
169 <td style="border: 1px solid black;padding-left: 10px;" >
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.
179 <td style="border: 1px solid black;padding-left: 10px;" >
182 <td style="border: 1px solid black;padding-left: 10px;" >
183 A subdirectory which defines helper code for these examples.
188 <td style="border: 1px solid black;padding-left: 10px;" >
189 sngecomm/environment.go
191 <td style="border: 1px solid black;padding-left: 10px;" >
192 Handle overrides from the environment for these examples.
197 <td style="border: 1px solid black;padding-left: 10px;" >
198 sngecomm/utilities.go
200 <td style="border: 1px solid black;padding-left: 10px;" >
201 Utility routines used by these examples.
206 <td style="border: 1px solid black;padding-left: 10px;" >
207 srmgor_1conn/srmgor_1conn.go
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.
217 <td style="border: 1px solid black;padding-left: 10px;" >
218 srmgor_1smrconn/srmgor_1smrconn.go
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 />
229 <td style="border: 1px solid black;padding-left: 10px;" >
230 srmgor_2conn/srmgor_2conn.go
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.
242 <td style="border: 1px solid black;padding-left: 10px;" >
243 srmgor_manyconn/srmgor_manyconn.go
245 <td style="border: 1px solid black;padding-left: 10px;" >
246 Send and receive.<br />
247 Many sender connections.<br />
248 Many receiver connections.
253 <td style="border: 1px solid black;padding-left: 10px;" >
254 subscribe/subscribe.go
256 <td style="border: 1px solid black;padding-left: 10px;" >
257 A basic demonstration of subscribing and receiving messages.
262 <td style="border: 1px solid black;padding-left: 10px;" >
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 />
280 <td style="border: 1px solid black;padding-left: 10px;" >
281 tlsexamps/tlsuc1/tlsuc1.go
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.
290 <td style="border: 1px solid black;padding-left: 10px;" >
291 tlsexamps/tlsuc2/tlsuc2.go
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.
300 <td style="border: 1px solid black;padding-left: 10px;" >
301 tlsexamps/tlsuc3/tlsuc3.go
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.
310 <td style="border: 1px solid black;padding-left: 10px;" >
311 tlsexamps/tlsuc4/tlsuc4.go
313 <td style="border: 1px solid black;padding-left: 10px;" >
314 UseCase4) Client does authenticate the broker and broker does
315 authenticate the client.
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
327 <table border="1" style="width:80%;border: 1px solid black;">
329 <th style="width:20%;border: 1px solid black;padding-left: 10px;" >
332 <th style="width:60%border: 1px solid black;padding-left: 10px;" >
338 <td style="border: 1px solid black;padding-left: 10px;" >
339 jinterop/activemq/clean.sh
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.
348 <td style="border: 1px solid black;padding-left: 10px;" >
349 jinterop/activemq/compile.sh
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.
358 <td style="border: 1px solid black;padding-left: 10px;" >
359 jinterop/activemq/cp.sh
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.
369 <td style="border: 1px solid black;padding-left: 10px;" >
370 jinterop/activemq/gorecv.sh
372 <td style="border: 1px solid black;padding-left: 10px;" >
373 This script runs the go receiver/consumer/getter.
378 <td style="border: 1px solid black;padding-left: 10px;" >
379 jinterop/activemq/gosend.sh
381 <td style="border: 1px solid black;padding-left: 10px;" >
382 This script runs the go sender/producer/putter.
387 <td style="border: 1px solid black;padding-left: 10px;" >
388 jinterop/activemq/jrecv.sh
390 <td style="border: 1px solid black;padding-left: 10px;" >
391 This script runs the Java receiver/consumer/getter.
396 <td style="border: 1px solid black;padding-left: 10px;" >
397 jinterop/activemq/jsend.sh
399 <td style="border: 1px solid black;padding-left: 10px;" >
400 This script runs the Java sender/producer/putter.
405 <td style="border: 1px solid black;padding-left: 10px;" >
406 jinterop/activemq/runall.sh
408 <td style="border: 1px solid black;padding-left: 10px;" >
409 This script runs all possible combinations of producers / consumers.
414 <td style="border: 1px solid black;padding-left: 10px;" >
417 <td style="border: 1px solid black;padding-left: 10px;" >
418 Send and receive, many go routines, one *stompngo.Connection.<br />
419 A logging helper script.
424 <td style="border: 1px solid black;padding-left: 10px;" >
425 srmgor_1smrconn/run.sh
427 <td style="border: 1px solid black;padding-left: 10px;" >
428 Send and receive, one sender connection with many go routines,
429 many receiver connections.<br />
430 A logging helper script.
435 <td style="border: 1px solid black;padding-left: 10px;" >
438 <td style="border: 1px solid black;padding-left: 10px;" >
439 Send and receive, one receiver connection with many go routines, one
440 sender connection with many go routines.<br />
441 A logging helper script.
446 <td style="border: 1px solid black;padding-left: 10px;" >
447 srmgor_manyconn/run.sh
449 <td style="border: 1px solid black;padding-left: 10px;" >
450 Send and receive, many receiver connections, many sender connections.<br />
451 A logging helper script.
456 <td style="border: 1px solid black;padding-left: 10px;" >
457 tlsexamps/tlsuc1/run.sh
459 <td style="border: 1px solid black;padding-left: 10px;" >
460 TLS Use Case 1.<br />
466 <td style="border: 1px solid black;padding-left: 10px;" >
467 tlsexamps/tlsuc2/runall.sh
469 <td style="border: 1px solid black;padding-left: 10px;" >
470 TLS Use Case 2.<br />
471 Example run script.<br />
472 Three separate runs, using different ports.
477 <td style="border: 1px solid black;padding-left: 10px;" >
478 tlsexamps/tlsuc2/run.sh
480 <td style="border: 1px solid black;padding-left: 10px;" >
481 TLS Use Case 2.<br />
488 <td style="border: 1px solid black;padding-left: 10px;" >
489 tlsexamps/tlsuc3/runall.sh
491 <td style="border: 1px solid black;padding-left: 10px;" >
492 TLS Use Case 3.<br />
493 Example run script.<br />
494 Three separate runs, using different ports.
499 <td style="border: 1px solid black;padding-left: 10px;" >
500 tlsexamps/tlsuc3/run.sh
502 <td style="border: 1px solid black;padding-left: 10px;" >
503 TLS Use Case 3.<br />
509 <td style="border: 1px solid black;padding-left: 10px;" >
510 tlsexamps/tlsuc4/runall.sh
512 <td style="border: 1px solid black;padding-left: 10px;" >
513 TLS Use Case 4.<br />
514 Example run script.<br />
515 Three separate runs, using different ports.
520 <td style="border: 1px solid black;padding-left: 10px;" >
521 tlsexamps/tlsuc4/run.sh
523 <td style="border: 1px solid black;padding-left: 10px;" >
524 TLS Use Case 4.<br />
531 ## Variable Names in the Examples ##
533 Note the author is accustomed to idiomatic go variable names (short if possible).
535 <table border="1" style="width:80%;border: 1px solid black;">
537 <th style="width:20%;border: 1px solid black;padding-left: 10px;" >
540 <th style="width:60%border: 1px solid black;padding-left: 10px;" >
546 <td style="border: 1px solid black;padding-left: 10px;" >
549 <td style="border: 1px solid black;padding-left: 10px;" >
550 Ack headers. A stompngo.Headers instance.
555 <td style="border: 1px solid black;padding-left: 10px;" >
558 <td style="border: 1px solid black;padding-left: 10px;" >
559 A loop couner. Because in some situations it makes sense. And because
560 writing 'c++' for the end of loop action is amusing.
565 <td style="border: 1px solid black;padding-left: 10px;" >
568 <td style="border: 1px solid black;padding-left: 10px;" >
569 Connect headers. A stompngo.Headers instance, used for the initial
570 CONNECT frame sent to the broker.
575 <td style="border: 1px solid black;padding-left: 10px;" >
578 <td style="border: 1px solid black;padding-left: 10px;" >
579 A instance of a *stompngo.Connection, usually obtained from a call to
580 stompngo.Connect(...).<br />
581 Rename candidate: sc.
586 <td style="border: 1px solid black;padding-left: 10px;" >
589 <td style="border: 1px solid black;padding-left: 10px;" >
590 A stomp destination, type string. Format and semantics are broker specific.
595 <td style="border: 1px solid black;padding-left: 10px;" >
598 <td style="border: 1px solid black;padding-left: 10px;" >
599 Disconnect headers. A stompngo.Headers instance.
604 <td style="border: 1px solid black;padding-left: 10px;" >
607 <td style="border: 1px solid black;padding-left: 10px;" >
608 A time.Duration instance.
613 <td style="border: 1px solid black;padding-left: 10px;" >
616 <td style="border: 1px solid black;padding-left: 10px;" >
617 An instance of the go error type.
622 <td style="border: 1px solid black;padding-left: 10px;" >
625 <td style="border: 1px solid black;padding-left: 10px;" >
626 A broker's (DNS) host name.
631 <td style="border: 1px solid black;padding-left: 10px;" >
634 <td style="border: 1px solid black;padding-left: 10px;" >
635 A host and port name returned from net.JoinHostPort(h, p), type string.<br />
636 Example: localhost:61613.
641 <td style="border: 1px solid black;padding-left: 10px;" >
644 <td style="border: 1px solid black;padding-left: 10px;" >
650 <td style="border: 1px solid black;padding-left: 10px;" >
653 <td style="border: 1px solid black;padding-left: 10px;" >
654 A (type 4) UUID obtained from calling stompngo.Uuid(), type string.
659 <td style="border: 1px solid black;padding-left: 10px;" >
662 <td style="border: 1px solid black;padding-left: 10px;" >
663 A receipt id, received from the broker, type string.
668 <td style="border: 1px solid black;padding-left: 10px;" >
671 <td style="border: 1px solid black;padding-left: 10px;" >
672 A go logger instance.
677 <td style="border: 1px solid black;padding-left: 10px;" >
680 <td style="border: 1px solid black;padding-left: 10px;" >
686 <td style="border: 1px solid black;padding-left: 10px;" >
689 <td style="border: 1px solid black;padding-left: 10px;" >
690 A message count, with type string.
695 <td style="border: 1px solid black;padding-left: 10px;" >
698 <td style="border: 1px solid black;padding-left: 10px;" >
699 A stompngo.MessageData instance. The instance is retrieved from r (i.e.
705 <td style="border: 1px solid black;padding-left: 10px;" >
708 <td style="border: 1px solid black;padding-left: 10px;" >
709 A message body, with type string.
714 <td style="border: 1px solid black;padding-left: 10px;" >
717 <td style="border: 1px solid black;padding-left: 10px;" >
718 A message body, with addional data, type string.
723 <td style="border: 1px solid black;padding-left: 10px;" >
726 <td style="border: 1px solid black;padding-left: 10px;" >
727 An implementation of the net.Conn interface, obtained by calling
733 <td style="border: 1px solid black;padding-left: 10px;" >
736 <td style="border: 1px solid black;padding-left: 10px;" >
737 The number of messages to process (produce/consume).<br />
738 Rename candidate: nm.
743 <td style="border: 1px solid black;padding-left: 10px;" >
746 <td style="border: 1px solid black;padding-left: 10px;" >
747 The number of destinations to use.<br />
748 Rename candidate: nd.
753 <td style="border: 1px solid black;padding-left: 10px;" >
756 <td style="border: 1px solid black;padding-left: 10px;" >
757 The number of receiver go routines.
762 <td style="border: 1px solid black;padding-left: 10px;" >
765 <td style="border: 1px solid black;padding-left: 10px;" >
766 A broker's listener port.
771 <td style="border: 1px solid black;padding-left: 10px;" >
774 <td style="border: 1px solid black;padding-left: 10px;" >
775 The print byte count. When message bodies are printed, this is the
776 maximum number of bytes to print. Useful when message body sizes are
777 large. This is arbitrarily set to 64 unless overridden. If this is
778 set to 0, message bodies are (usually) not printed at all.<br />
779 Rename candidate: pc.<br />
780 TODO: consistently print no message body if this is <= 0.
785 <td style="border: 1px solid black;padding-left: 10px;" >
788 <td style="border: 1px solid black;padding-left: 10px;" >
789 A channel of type bool, used for signaling event completion.
794 <td style="border: 1px solid black;padding-left: 10px;" >
797 <td style="border: 1px solid black;padding-left: 10px;" >
798 A queue number identifier. Used in a looping control structure for a
799 variable number of queues, or as a method parameter.
804 <td style="border: 1px solid black;padding-left: 10px;" >
807 <td style="border: 1px solid black;padding-left: 10px;" >
808 A queue number identifier, type string (from qn).
813 <td style="border: 1px solid black;padding-left: 10px;" >
816 <td style="border: 1px solid black;padding-left: 10px;" >
817 Used in the sngecomm subpackage only, for several reasons.<br />
818 TODO: this needs to change to a more meaningful variable name and
819 documentation for same added.
824 <td style="border: 1px solid black;padding-left: 10px;" >
827 <td style="border: 1px solid black;padding-left: 10px;" >
828 A receipt message from the broker. An instance of type stompngo.MessageData.
833 <td style="border: 1px solid black;padding-left: 10px;" >
836 <td style="border: 1px solid black;padding-left: 10px;" >
837 A receive wait time multiplier.
842 <td style="border: 1px solid black;padding-left: 10px;" >
845 <td style="border: 1px solid black;padding-left: 10px;" >
846 A receipt id, type string.
852 <td style="border: 1px solid black;padding-left: 10px;" >
855 <td style="border: 1px solid black;padding-left: 10px;" >
856 A wait flag used by receivers. When set to true, receivers wait for a
857 random amount of time after each message red.
862 <td style="border: 1px solid black;padding-left: 10px;" >
865 <td style="border: 1px solid black;padding-left: 10px;" >
866 Subscribe headers. A stompngo.Headers instance.
871 <td style="border: 1px solid black;padding-left: 10px;" >
874 <td style="border: 1px solid black;padding-left: 10px;" >
875 A channel of type stompngo.MessageData. Used in example code to
876 receive messages and metadata from the broker.
882 <td style="border: 1px solid black;padding-left: 10px;" >
885 <td style="border: 1px solid black;padding-left: 10px;" >
886 A send wait time multiplier.
891 <td style="border: 1px solid black;padding-left: 10px;" >
894 <td style="border: 1px solid black;padding-left: 10px;" >
895 Send headers. A stompngo.Headers instance.
900 <td style="border: 1px solid black;padding-left: 10px;" >
903 <td style="border: 1px solid black;padding-left: 10px;" >
904 A wait flag used by senders. When set to true, senders wait for a
905 random amount of time after each send.
910 <td style="border: 1px solid black;padding-left: 10px;" >
913 <td style="border: 1px solid black;padding-left: 10px;" >
914 A loop counter formatted as a string.
919 <td style="border: 1px solid black;padding-left: 10px;" >
922 <td style="border: 1px solid black;padding-left: 10px;" >
923 An instance of *tls.Config.
928 <td style="border: 1px solid black;padding-left: 10px;" >
931 <td style="border: 1px solid black;padding-left: 10px;" >
937 <td style="border: 1px solid black;padding-left: 10px;" >
940 <td style="border: 1px solid black;padding-left: 10px;" >
941 Wait group for all sender and receiver go routines.
946 <td style="border: 1px solid black;padding-left: 10px;" >
949 <td style="border: 1px solid black;padding-left: 10px;" >
950 Wait group for all receiver go routines.
956 <td style="border: 1px solid black;padding-left: 10px;" >
959 <td style="border: 1px solid black;padding-left: 10px;" >
960 Wait group for all sender go routines.
965 <td style="border: 1px solid black;padding-left: 10px;" >
968 <td style="border: 1px solid black;padding-left: 10px;" >
969 Work headers. A stompngo.Headers instance.
975 ## Variable Names Specific to the TLS Examples ##
977 <table border="1" style="width:80%;border: 1px solid black;">
979 <th style="width:20%;border: 1px solid black;padding-left: 10px;" >
982 <th style="width:60%border: 1px solid black;padding-left: 10px;" >
988 <td style="border: 1px solid black;padding-left: 10px;" >
991 <td style="border: 1px solid black;padding-left: 10px;" >
992 A buffer, type []byte.
997 <td style="border: 1px solid black;padding-left: 10px;" >
1000 <td style="border: 1px solid black;padding-left: 10px;" >
1001 An instance of *x509.Certificate.
1006 <td style="border: 1px solid black;padding-left: 10px;" >
1009 <td style="border: 1px solid black;padding-left: 10px;" >
1010 An instance of tls.Certificate.
1015 <td style="border: 1px solid black;padding-left: 10px;" >
1018 <td style="border: 1px solid black;padding-left: 10px;" >
1019 The full file name of the client's public cert in PEM format.
1025 <td style="border: 1px solid black;padding-left: 10px;" >
1028 <td style="border: 1px solid black;padding-left: 10px;" >
1029 The full file name of the client's private key in PEM format.
1034 <td style="border: 1px solid black;padding-left: 10px;" >
1037 <td style="border: 1px solid black;padding-left: 10px;" >
1038 An instance of error.
1043 <td style="border: 1px solid black;padding-left: 10px;" >
1046 <td style="border: 1px solid black;padding-left: 10px;" >
1047 An instance of *pem.Block.
1052 <td style="border: 1px solid black;padding-left: 10px;" >
1055 <td style="border: 1px solid black;padding-left: 10px;" >
1061 <td style="border: 1px solid black;padding-left: 10px;" >
1064 <td style="border: 1px solid black;padding-left: 10px;" >
1065 A pointer to a tls configuration, type *tls.Config, obtained from
1071 <td style="border: 1px solid black;padding-left: 10px;" >
1074 <td style="border: 1px solid black;padding-left: 10px;" >
1075 The full file name of the server CA's public cert in PEM format.
1080 <td style="border: 1px solid black;padding-left: 10px;" >
1083 <td style="border: 1px solid black;padding-left: 10px;" >
1084 An implementation of the net.Conn interface, obtained by calling
1090 <td style="border: 1px solid black;padding-left: 10px;" >
1093 <td style="border: 1px solid black;padding-left: 10px;" >
1094 A pointer to a tls configuration, type *tls.Config, obtained from 'new'.