下面是一个简单的 Go 代码实现 ZeroMQ 的发布订阅模式:

package main

import (
    "fmt"
    zmq "github.com/zeromq/goczmq"
)

func main() {
    // 创建一个 ZeroMQ 上下文
    ctx := zmq.NewContext()
    defer ctx.Destroy()

    // 创建一个发布者
    pub, _ := zmq.NewPub(ctx)
    defer pub.Destroy()

    // 绑定地址
    pub.Bind("tcp://*:5555")

    // 创建一个订阅者
    sub, _ := zmq.NewSub(ctx)
    defer sub.Destroy()

    // 订阅所有主题
    sub.SetSubscribe("")

    // 连接发布者
    sub.Connect("tcp://localhost:5555")

    // 发布消息
    pub.SendFrame([]byte("Hello, World!"), 0)

    // 接收消息
    msg, err := sub.RecvFrame()
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(string(msg))
    }
}

以上代码创建了一个 ZeroMQ 上下文,然后创建了一个发布者和一个订阅者,绑定和连接地址,然后发布一条消息并接收该消息。在订阅者中,我们使用 SetSubscribe() 方法来订阅所有主题。在实际应用中,您可以根据需要订阅特定的主题或模式。


原文地址: https://www.cveoy.top/t/topic/l5h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录