发送结构化数据

一些客户端库提供了发送结构化数据的辅助工具,而另一些则依赖应用程序自行进行编码和解码,并仅接受字节数组进行发送。以下示例展示了如何发送 JSON 数据,但也可以轻松修改为发送协议缓冲区(protocol buffer)、YAML 或其他格式。JSON 是一种文本格式,因此在大多数语言中我们还需要将字符串编码为字节。我们使用 UTF-8,这是 JSON 的标准编码方式。

以一个简单的 股票行情 为例,它会发送每只股票的代码和价格:

nc, err := nats.Connect("demo.nats.io")
if err != nil {
    log.Fatal(err)
}
defer nc.Close()

ec, err := nats.NewEncodedConn(nc, nats.JSON_ENCODER)
if err != nil {
    log.Fatal(err)
}
defer ec.Close()

// 定义对象
type stock struct {
    Symbol string
    Price  int
}

// 发布消息
if err := ec.Publish("updates", &stock{Symbol: "GOOG", Price: 1200}); err != nil {
    log.Fatal(err)
}

最后更新于