Skip to content

Instantly share code, notes, and snippets.

@FZambia
Last active March 7, 2017 10:07
Show Gist options
  • Save FZambia/5955032 to your computer and use it in GitHub Desktop.
Save FZambia/5955032 to your computer and use it in GitHub Desktop.
ZeroMQ XPUB/XSUB proxy implemented using golang
package main
import (
"flag"
zmq "github.com/alecthomas/gozmq"
"log"
)
var xpub = flag.String("xpub", "tcp://*:6001", "ZeroMQ XPUB socket address")
var xsub = flag.String("xsub", "tcp://*:6000", "ZeroMQ XSUB socket address")
func main() {
flag.Parse()
log.Printf("XPUB: %s", *xpub)
log.Printf("XSUB: %s", *xsub)
context, err := zmq.NewContext()
if err != nil {
log.Fatal(err)
}
defer context.Close()
xpub_socket, err := context.NewSocket(zmq.XPUB)
if err != nil {
log.Fatal(err)
}
xsub_socket, err := context.NewSocket(zmq.XSUB)
if err != nil {
log.Fatal(err)
}
xpub_socket.Bind(*xpub)
xsub_socket.Bind(*xsub)
zmq.Proxy(xpub_socket, xsub_socket, nil)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment