RabbitMQ。无法发送消息。正在从 RMQ 仪表板接收消息,因此接收功能正在运行。只发送外汇不工作

问题描述 投票:0回答:0

我正在尝试将消息发送到特定的路由键,但它没有收到。当我从仪表板发送消息时,会收到消息。我找不到这段代码有什么问题。请帮助。

func sendIndividualMessageToRabbitMq(practiceExchange, myUserId string, reader *bufio.Reader) {
    conn, err := connectToRabbitMq()
    if err != nil {
        log.Fatal("Could not connect to chat server")
    }
    defer conn.Close()
    fmt.Print("Enter recipient ID: ")
    recipientID, _ := reader.ReadString('\n')
    recipientID = strings.TrimSpace(recipientID)
    targetQueue := practiceExchange + recipientID
    println("TargetQueue: ", targetQueue)
    println("Exchange: ", practiceExchange)
    ch, err := conn.Channel()
    failOnError(err, "Error in creating channel")
    defer ch.Close()
    err = ch.ExchangeDeclare(
        practiceExchange, // exchange name
        "direct",         // kind
        true,             // durable
        false,
        false,
        false,
        nil,
    )
    failOnError(err, "Error creating exchange")
    fmt.Print("Enter message: ")
    messageText, _ := reader.ReadString('\n')
    messageText = strings.TrimSpace(messageText)
    ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
    defer cancel()
    log.Printf("Sending message with routing key: %s, message text: %s", targetQueue, messageText)
    err = ch.PublishWithContext(ctx,
        practiceExchange, // exchange
        targetQueue,      // routing key
        false,            // mandatory
        false,            // immediate
        amqp.Publishing{
            DeliveryMode: amqp.Persistent,
            ContentType:  "text/plain",
            Body:         []byte(messageText),
            MessageId: uuid.NewString(),
            Timestamp: time.Now(),
            UserId: myUserId,
        })
    failOnError(err, "Failed to send message")
    log.Printf(" [x] Sent %s", messageText)
}

自过去 3 天以来,我尝试了所有方法。我一直在破坏我的大脑,但没有产量。该消息至少应出现在 RMQ 仪表板中,但没有未确认的消息。我不知道这些消息的去向,最重要的是,它们没有出现在接收器中。

go rabbitmq chat
© www.soinside.com 2019 - 2024. All rights reserved.