0
私は、次の図を実装するつもりです。ただ、すべての「データ・ジェネレータは、」すべての「データ受信」にデータを公開できるように ZMQ-proxyZMQプロキシを「スイッチ」として使用することはできますか?
を。 データ受信者は引き続きサブスクリプションを設定できるはずです。
// Proxy
package main
import zmq "github.com/pebbe/zmq4"
func main() {
publisher, _ := zmq.NewSocket(zmq.XPUB)
defer publisher.Close()
publisher.Bind("tcp://*:8080")
subscriber, _ := zmq.NewSocket(zmq.XSUB)
defer subscriber.Close()
subscriber.Bind("tcp://*:8081")
zmq.Proxy(subscriber, publisher, nil)
}
そして、 "データ・ジェネレータ":
// Data generator
package main
import (
zmq "github.com/pebbe/zmq4"
"time"
)
func main() {
publisher, _ := zmq.NewSocket(zmq.PUB)
defer publisher.Close()
publisher.Connect("tcp://127.0.0.1:8081")
for {
publisher.Send("Some msg", 0)
time.Sleep(time.Second)
}
}
そして、 "データ受信":
// Data receiver
package main
import (
"fmt"
zmq "github.com/pebbe/zmq4"
)
func main() {
subscriber, _ := zmq.NewSocket(zmq.SUB)
defer subscriber.Close()
subscriber.Connect("tcp://127.0.0.1:8080")
for {
msg, _ := subscriber.Recv(0)
fmt.Println(msg)
}
}
動作するはずと私には思われるが、そうではありません。私は間違って何をしていますか?
プロキシのソケットモニタでは、EVENT_ACCEPTEDとEVENT_DISCONNECTEDメッセージが表示されます。 –