gpt4 book ai didi

php - ActiveMQ/PHP Stomp 使用 TextMessage 而不是 BytesMessage

转载 作者:可可西里 更新时间:2023-10-31 22:53:16 26 4
gpt4 key购买 nike

当我使用 PHP-Stomp 向 ActiveMQ 发送消息时消息作为 BytesMessage 发送。但是我想发送一条 TextMessage。

根据STOMP documentation这可以通过不发送内容长度 header 来实现:

... The protocol does however support a content-length header. To provide more robust interaction between Stomp and JMS clients, ActiveMQ keys off of the inclusion of this header to determine what message type to create when sending from Stomp to JMS. The logic is simple:

Inclusion of content-length header => Resulting Message

yes => BytesMessage

no => TextMessage

This same logic can be followed when going from JMS to Stomp, as well. A Stomp client could be written to key off of the inclusion of the content-length header to determine what type of message structure to provide to the user.

在我的测试 PHP 脚本中,我没有定义内容长度 header ,它似乎是自动添加的。我还尝试将内容长度传递为 0、false 或 null。在所有这些情况下,它都会生成一个 BytesMessage。

所以我的问题是,如何生成 Textmessage 而不是 BytesMessage

我的代码如下所示:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->send('/topic/test.central_message_topic', 'testmessage', [
"persistent" => "true",
]);

最佳答案

已经很长时间了,但这对我有用:

try {  
$stomp->send("your_queue", "your_message", array("amq-msg-type" => "text"));
} catch (StompException $e) {
die('send failed: ' . $e->getMessage());
}

关于php - ActiveMQ/PHP Stomp 使用 TextMessage 而不是 BytesMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31559039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com