【问题标题】:Problem connection from PHP to Apache ActiveMQ using AMQP使用 AMQP 从 PHP 到 Apache ActiveMQ 的连接问题
【发布时间】:2020-10-24 06:47:16
【问题描述】:

我尝试上下搜索网络 - 他们将我指向 RabbitMQ,这是不可能的,因为客户特别要求 ActiveMQ / Amazon MQ,它基本上是亚马逊云中的 ActiveMQ。其他结果建议使用不同的协议 (STOMP) - 我不能这样做,因为客户再次允许通过 AMQP 进行访问

所以我很茫然..你能帮我开始吗?我尝试使用 PHPamqplib,但在连接建立期间访问已经运行的 activeMQ 代理“Invalid frame type 65 in ....AbstractConnection.php:571”时出错。

<?php
namespace Test;
require_once __DIR__.'/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPSocketConnection;
use PhpAmqpLib\Message\AMQPMessage;

class Test {
   private $host='192.168.3.66';
   private $port=5672;
   private $user='guest';
   private $password='guest';
   protected $connection;
   protected $channel;

public function __construct() {
   $this->connection=new AMQPSocketConnection($this->host, $this->port, $this->user,$this->password);
   $this->channel=$this->connection->channel();
}
...

在执行构造函数期间,当我构建我的 Test 类的实例来发送消息时,错误已经发生在这里。在你问之前,我尝试了库提供的不同 AMQP 连接类型——错误总是一样的。老实说,当它使用 amqpnetlite 库在 C# 中工作时,我有点不知所措,缺少什么以及这个错误的根源。任何帮助将不胜感激!

【问题讨论】:

  • 感谢您的回答,最终我们决定使用 c# 对其进行编码,以维护我们发送到的代理的开发人员提供的示例为基础。

标签: php activemq amqp php-amqplib


【解决方案1】:

根据the README.md php-amqplib 支持 AMQP 0.9.1。但是,ActiveMQ supports AMQP 1.0。不幸的是,这两种协议不兼容。如果您想与 ActiveMQ 或 Amazon MQ 通信,您需要找到支持 1.0 的 PHP AMQP 客户端。根据this thread 的说法,没有计划在 php-amqplib 中支持 AMQP 1.0。

amqpnetlite client supports AMQP 1.0 这就是它与 ActiveMQ 一起使用的原因。

【讨论】:

  • 你知道任何针对 AMQP 1.0 的 PHP 相关内容吗?
  • 我搜索了一下,没找到。
猜你喜欢
  • 2020-09-08
  • 2017-10-07
  • 2019-08-18
  • 1970-01-01
  • 2014-12-12
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多