【问题标题】:RabbitMQ: Works in terminal, but not with PHPRabbitMQ:适用于终端,但不适用于 PHP
【发布时间】:2015-10-28 06:38:07
【问题描述】:

对于我目前正在从事的项目,我正在使用 rabbitMQ 对任务进行排队并发送消息。如果我从终端运行服务器和客户端,我将接收数据,但如果我尝试将 php 包含在试图将其显示到网页的 index.php 中,则它不起作用。我做错了什么,我尝试将 testRabbitMQClient.php 包装在一个函数中,但这仍然不起作用。我错过了什么?

   <?php
//index.php

require 'openid.php';
require 'functions.php';
require 'testRabbitMQClient.php';
/*
#connects to my database and checks to make sure its connected.
*/
$apikey="key";
try {
   $openid = new LightOpenID('localhost');
    if(!$openid->mode) {
        if(isset($_GET['login'])) {
            $openid->identity = 'http://steamcommunity.com/openid';
            header('Location: ' . $openid->authUrl());
        }
?>
<h1>Hey ____ thank you for using FOF.com</h1>

<br>
<?php 
    //showFriends(xxxxxxxxxxxxxxxxx); 
    //calls function from testRabbitMQClient.php    
    send("friends");

?>
<form action="?login" method="post">
    <input type="image" src="http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_large_border.png">
</form>
<?php
    } elseif($openid->mode == 'cancel') {
        echo 'User has canceled authentication!';
    } else {
        if($openid->validate()) {
                $id = $openid->identity;
                // identity is something like: http://steamcommunity.com/openid/id/76561197994761333
                // we only care about the unique account ID at the end of the URL.
                $ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
                preg_match($ptn, $id, $matches);
                echo "User is logged in (steamID: $matches[1])\n";
    } 
    else 
    {
                echo "User is not logged in.\n";
        }

    }
} catch(ErrorException $e) {
    echo $e->getMessage();
}
?>

#!/usr/bin/php
<?php
//rabbit mq client;
require_once('path.inc');
require_once('get_host_info.inc');
require_once('rabbitMQLib.inc');

function send($type){
    $client = new rabbitMQClient("testRabbitMQ.ini","testServer");
    if (isset($argv[1]))
    {
        $msg = $argv[1];
    }
    else
    {
        $msg = "test message";
    }

    $request = array();
    $request['type'] = "friends";
    $request['username'] = "steve";
    $request['password'] = "password";
    $request['message'] = $msg;
    $response = $client->send_request($request);
    //$response = $client->publish($request);

    echo "client received response: ".PHP_EOL;
    echo $response;
    echo "\n\n";

    echo $argv[0]." END".PHP_EOL;
}

?>

【问题讨论】:

  • 您是否收到错误消息?没有错误但没有排队?
  • 通过浏览器运行后,我没有收到任何错误,也没有队列。
  • 好吧,我不应该说没有排队,我应该说什么都没有排队

标签: php web rabbitmq


【解决方案1】:

我发现了我的问题!我忘了在 apache 中启用 amqp。我通过将extension=amqp.so 添加到位于 apache 文件夹中的 php.ini 文件来做到这一点。

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 2020-01-13
    • 1970-01-01
    • 2018-12-03
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多