在 Golang 中使用 STOMP 函数。

3

我正在尝试使用客户端的stomp.dial()函数建立stomp连接,但是无法连接到服务器。

我正在使用go-stomp库。我尝试了不同的方法,比如使用net.connect然后stomp.connect,但是结果都是相同的错误。错误信息如下: read tcp: wsarecv:远程主机强制关闭了一个现有的连接 到底发生了什么,如何解决呢? 我的代码大概长这样:

ticker := time.NewTicker(time.Second * 5)
    defer ticker.Stop()
    for ; ; <-ticker.C {
        st, err := stomp.Dial("tcp", conn.ConfigStr)
        if err != nil {
            log.Println("Stomp connect error", err.Error())
            continue
        }
                log.Println("CONNECTED TO ", conn.ProviderName)


1个回答

0

我以这种方式完成了您的请求。
首先,在本地端口61613上运行STOMP服务器。为了启动它,我使用了以下命令:
docker run -it --rm -p 61613:61613 efrecon/stomp -verbose 5
然后,我使用go-stomp包和Dial函数连接到它:

package main

import "github.com/go-stomp/stomp/v3"

func main() {
    conn, err := stomp.Dial("tcp", "localhost:61613")
    if err != nil {
        panic(err)
    }
    defer func() {
        if err = conn.Disconnect(); err != nil {
            panic(err)
        }
    }()
}

最后,我使用了Disconnect方法来关闭连接。
如果这对你也有效,请让我知道。

当我运行上述命令启动时,出现了以下错误 - docker: error during connect: This error may indicate that the docker daemon is not running.: Post "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/create": open //./pipe/docker_engine: The system cannot find the file specified. @Ivan - ainampudi aashritha
你的电脑上是否已安装并运行了Docker? 如果没有,你可以从这里下载https://docs.docker.com/get-docker/ - ossan
我在我的电脑上安装了Docker。 - ainampudi aashritha
如果你运行 systemctl is-active docker,输出是什么?或者尝试一个简单的 docker ps -a - ossan
当我运行 docker ps -a 命令时,出现了以下错误信息:error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1": open //./pipe/docker_engine: The system cannot find the file specified. - ainampudi aashritha
您可以按照此指南确保 Docker 服务正在运行。https://linuxhint.com/resolve-docker-daemon-not-running/ 最终,您应该能够成功运行上述命令。您可以使用此命令进行测试: docker run hello-world,它应该会给您一个欢迎信息。 - ossan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接