【问题标题】:nats: no response from streamnats:流没有响应
【发布时间】:2022-03-22 19:22:52
【问题描述】:

nats-server -js 有错误 当我想在 nats-server -js 中使用 golang 发布 msg 时,出现如下错误:nats: no response from stream 我想将视频发布到 nats-server -js 这是我的 pub 文件:

    nc, _ := nats.Connect(nats.DefaultURL)

js, _ := nc.JetStream()

webcam, _ := gocv.VideoCaptureDevice(0)
img := gocv.NewMat()
defer img.Close()
for {
    webcam.Read(&img)
    _, err := js.Publish("ORDERS", img.ToBytes())
    if err != nil {
        fmt.Println(err)
    }
}

我该如何解决这个问题? 提前感谢您的回复。

【问题讨论】:

  • 解决方案是什么。我得到同样的错误。

标签: go nats.io nats-streaming-server


【解决方案1】:

您的代码的问题是,您忘记添加stream。您的 nats 服务器可连接到4222(默认)。但是您必须添加一个流来发布和获取数据,这里是go中的代码

_, err = js.AddStream(&nats.StreamConfig{
        Name:     "orders",
        Subjects: []string{"ORDERS.*"},
    })

请参阅more 的文档

【讨论】:

    【解决方案2】:

    我认为您需要在发布功能中指定子主题 (ORDERS.*) 示例:ORDERS.category、ORDERS.abc、....(不是:ORDERS)

    这是我的 NATS STREAMING JS Pub/Sub 消息示例:

    enter image description here

    package main
    
    import (
        "fmt"
        "github.com/test/global"
        "github.com/nats-io/nats.go"
    )
    
    func main() {
        nc, err := nats.Connect(global.GetURL())
        if err != nil {
            fmt.Println(err)
        }
        js, err := nc.JetStream()
        if err != nil {
            fmt.Println(err)
        }
        _, err = js.Publish("ORDERS.abc", []byte("abc"))
        if err != nil {
            fmt.Println(err)
        }
    }
    

    【讨论】:

    猜你喜欢
    • 2019-10-26
    • 2017-05-08
    • 1970-01-01
    • 2018-11-22
    • 2016-01-29
    • 2022-10-20
    • 2011-11-06
    • 2021-11-18
    • 1970-01-01
    相关资源
    最近更新 更多