登录
首页 >  Golang >  Go问答

nats:流无回应

来源:stackoverflow

时间:2024-02-19 11:57:24 126浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《nats:流无回应》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

nats-server -js 出现错误 当我想在 nats-server -js 中使用 golang 发布消息时,出现如下错误:nats:流没有响应 我想将视频发布到 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)
    }
}

如何解决这个问题? 预先感谢您的回复。


正确答案


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

_, err = js.addstream(&nats.streamconfig{
        name:     "orders",
        subjects: []string{"orders.*"},
    })

请参阅 more 的文档

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

这是我使用 nats streaming js pub/sub 消息的示例:

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)
    }
}

到这里,我们也就讲完了《nats:流无回应》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>