Skip to content

Instantly share code, notes, and snippets.

@Grabber
Last active October 8, 2021 13:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Grabber/f02896e12256810435e9606046604ac1 to your computer and use it in GitHub Desktop.
Save Grabber/f02896e12256810435e9606046604ac1 to your computer and use it in GitHub Desktop.
zmq / poller / proxy
poller := zmq.NewPoller()
poller.Add(frontend, zmq.POLLIN)
poller.Add(backend, zmq.POLLIN)
for {
var sockets []zmq.Polled
sockets, err := poller.Poll(-1)
if err != nil {
break
}
for _, socket := range sockets {
switch socket.Socket {
case frontend:
msg, err := frontend.RecvMessage(0)
if err != nil {
break
}
backend.SendMessage(msg)
case backend:
msg, err := backend.RecvMessage(0)
if err != nil {
break
}
frontend.SendMessage(msg)
}
}
}
// Is this poller implementation the same as the native zmq proxy?
err := zmq.Proxy(frontend, backend, nil)
fmt.Printf("Proxy interrupted: %v\n", err)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment