Artifact
d17a548c7aa2148d3bc798f29b07e77c5f9bd2ea:
0000: 3b 3b 20 77 61 74 63 68 20 6e 61 6e 6f 6d 73 67 ;; watch nanomsg
0010: 27 73 20 70 69 70 65 6c 69 6e 65 20 6c 6f 61 64 's pipeline load
0020: 2d 62 61 6c 61 6e 63 65 72 20 69 6e 20 61 63 74 -balancer in act
0030: 69 6f 6e 2e 0a 28 75 73 65 20 6e 61 6e 6f 6d 73 ion..(use nanoms
0040: 67 29 0a 0a 28 64 65 66 69 6e 65 20 72 65 71 20 g)..(define req
0050: 20 20 28 6e 6e 2d 73 6f 63 6b 65 74 20 27 72 65 (nn-socket 're
0060: 71 29 29 0a 28 64 65 66 69 6e 65 20 72 65 70 20 q)).(define rep
0070: 20 20 28 6e 6e 2d 73 6f 63 6b 65 74 20 27 72 65 (nn-socket 're
0080: 70 29 29 0a 0a 28 6e 6e 2d 62 69 6e 64 20 20 20 p))..(nn-bind
0090: 20 72 65 70 20 20 22 69 6e 70 72 6f 63 3a 2f 2f rep "inproc://
00a0: 74 65 73 74 22 29 0a 28 6e 6e 2d 63 6f 6e 6e 65 test").(nn-conne
00b0: 63 74 20 72 65 71 20 20 22 69 6e 70 72 6f 63 3a ct req "inproc:
00c0: 2f 2f 74 65 73 74 22 29 0a 0a 28 64 65 66 69 6e //test")..(defin
00d0: 65 20 28 63 6c 69 65 6e 74 2d 73 65 6e 64 2d 72 e (client-send-r
00e0: 65 63 65 69 76 65 20 73 6f 63 20 6d 73 67 29 0a eceive soc msg).
00f0: 20 20 28 6e 6e 2d 73 65 6e 64 20 73 6f 63 20 6d (nn-send soc m
0100: 73 67 29 0a 20 20 28 6e 6e 2d 72 65 63 76 20 73 sg). (nn-recv s
0110: 6f 63 29 29 0a 0a 28 64 65 66 69 6e 65 20 28 28 oc))..(define ((
0120: 73 65 72 76 65 72 20 73 6f 63 29 29 0a 20 20 28 server soc)). (
0130: 6c 65 74 20 6c 6f 6f 70 20 28 28 6d 73 67 2d 69 let loop ((msg-i
0140: 6e 20 28 6e 6e 2d 72 65 63 76 20 73 6f 63 29 29 n (nn-recv soc))
0150: 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 ). (if (not (
0160: 65 71 75 61 6c 3f 20 6d 73 67 2d 69 6e 20 22 71 equal? msg-in "q
0170: 75 69 74 22 29 29 0a 09 28 62 65 67 69 6e 0a 09 uit"))..(begin..
0180: 20 20 28 6e 6e 2d 73 65 6e 64 20 73 6f 63 20 28 (nn-send soc (
0190: 63 6f 6e 63 20 22 68 65 6c 6c 6f 20 22 20 6d 73 conc "hello " ms
01a0: 67 2d 69 6e 29 29 0a 09 20 20 28 6c 6f 6f 70 20 g-in)).. (loop
01b0: 28 6e 6e 2d 72 65 63 76 20 73 6f 63 29 29 29 29 (nn-recv soc))))
01c0: 29 29 0a 0a 28 74 68 72 65 61 64 2d 73 74 61 72 ))..(thread-star
01d0: 74 21 20 28 73 65 72 76 65 72 20 72 65 70 29 29 t! (server rep))
01e0: 0a 0a 28 70 72 69 6e 74 20 28 63 6c 69 65 6e 74 ..(print (client
01f0: 2d 73 65 6e 64 2d 72 65 63 65 69 76 65 20 72 65 -send-receive re
0200: 71 20 22 4d 61 74 74 22 29 29 0a 28 70 72 69 6e q "Matt")).(prin
0210: 74 20 28 63 6c 69 65 6e 74 2d 73 65 6e 64 2d 72 t (client-send-r
0220: 65 63 65 69 76 65 20 72 65 71 20 22 54 6f 6d 22 eceive req "Tom"
0230: 29 29 0a 0a 3b 3b 20 28 63 6c 69 65 6e 74 2d 73 ))..;; (client-s
0240: 65 6e 64 2d 72 65 63 65 69 76 65 20 72 65 71 20 end-receive req
0250: 22 71 75 69 74 22 29 0a 0a 28 6e 6e 2d 63 6c 6f "quit")..(nn-clo
0260: 73 65 20 72 65 71 29 0a 28 6e 6e 2d 63 6c 6f 73 se req).(nn-clos
0270: 65 20 72 65 70 29 0a 28 65 78 69 74 29 0a e rep).(exit).