【问题标题】:php messagelistener for activemq用于activemq的php消息监听器
【发布时间】:2014-06-25 13:44:12
【问题描述】:

我目前正在使用 stomp 在 activemq 队列中发送和接收/消费消息,但是 stomp 消费者正在同步工作,这意味着 stomp 消费者会不断检查队列中是否有任何新消息。但我需要做的是当有新消息进入队列时,让 activemq 通知我的 stomp 消费者。例如 Java 中的 Onmessage() 方法。我搜索了几天,但仍然没有运气。 我当前的 php 代码(我如何使用 stomp 从队列中读取消息):

while (true) {

       $frame = $stomp->readFrame();
       if ($frame != NULL) {
           print "Received: " . $frame->body . " - time now is " . date("Y-m-d H:i:s"). "\n";
           $stomp->ack($frame);
       }
       else {
       print "No frames to read\n";
   }

【问题讨论】:

  • 这将是你的 php STOMP 客户端的一个特性,所以请让人们知道你在使用什么。
  • 好吧,任何 php 的任何工作解决方案,stomp 版本都可以,如果需要我可以更新版本。
  • github.com/reactphp/stomp 似乎支持你想要的,但似乎只支持 STOMP 1.0
  • 谢谢@Buchi。 github.com/reactphp/stomp ,它是异步的,并且有很多好的特性。

标签: php activemq message-queue stomp messagebroker


【解决方案1】:

解决了问题。

使用了 github.com/reactphp/stomp 库,它运行良好。 它现在异步使用来自我的消息代理的消息。

【讨论】:

    【解决方案2】:

    我检查了 reactphp/stomp 库,看起来很棒。我认为无论哪种方式都可以读取消息,但我喜欢调度计时器添加到应用程序设计中的事件驱动感。在我看来,随它去吧。 对于所有其他对使用另一个新库不感兴趣但仍然担心检查每个 CPU 滴答声的无限循环开销的人,这里有 2 个可供探索的选项: - 在下次检查(每次迭代结束)之前添加睡眠($timeout) - 使用作为 PECL 扩展分发的 Event 类(不与 PHP 捆绑)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2015-10-18
      相关资源
      最近更新 更多