【发布时间】:2015-04-04 07:17:02
【问题描述】:
我正在尝试使用 PHP 客户端从 activemq 获取队列。我在项目中包含了一个 stomp 库。这是我的项目树:
TestPhp/
├── PhpInfo.php
├── SimpleStompConsumer.php
└── Stomp
├── Exception
| └── StompException.php
├── ExceptionInterface.php
├── Frame.php
├── Message
│ ├── Bytes.php
│ └── Map.php
├── Message.php
└── Stomp.php
这是我的代码
<?php
$path = "/var/www/test/TestPhp/Stomp/Stomp.php";
require_once($path);
$con = new Stomp("tcp://localhost:61613");
$con->connect();
$con->subscribe("/queue/test");
$msg = $con->readFrame();
if( $msg != null) {
echo "Received message with body '$msg->body'\n";
$con->ack($msg);
} else {
echo "Failed to receive a message\n";
}
$con->disconnect();
?>
当我运行 php 文件时,我收到以下错误,我不知道该怎么做。
PHP Fatal error: Class 'Stomp' not found in /var/www/test/TestPhp/SimpleStompConsumer.php on line 5
PHP Stack trace: PHP 1. {main}() /var/www/test/TestPhp/SimpleStompConsumer.php:0
如果有任何指示,我将不胜感激。谢谢。
Edit:
库被称为 Stomp。这里是 github链接 和download 链接
Edit:
更改$con = new Stomp("tcp://localhost:61613");
to $con = new FuseSource\Stomp\Stomp("tcp://localhost:61613"); $con = new FuseSource\Stomp\Stomp("tcp://localhost:61613");
ERROR returned:
PHP Fatal error: Class 'FuseSource\Stomp\Exception\StompException' not found in /var/www/test/TestPhp/Stomp/Stomp.php on line 174
PHP Stack trace:
PHP 1. {main}() /var/www/test/TestPhp/SimpleStompConsumer.php:0
PHP 2. FuseSource\Stomp\Stomp->connect() /var/www/test/TestPhp/SimpleStompConsumer.php:6
PHP 3. FuseSource\Stomp\Stomp->_makeConnection() /var/www/test/TestPhp/Stomp/Stomp.php:195
【问题讨论】:
-
这个类真的叫
Stomp吗?你能链接到你正在使用的库吗? -
会不会是我放错了库?我试图从FuseSource 下载,但链接有点死。
-
Stomp.php 的第 174 和 195 行有什么内容?