rabbitmq - Dart 和 RabbitMQ 绑定(bind)交换

标签 rabbitmq dart stomp

我使用 STOMP package ,我写了一个测试:

test('can subscribe and send events to mq server', () async {
  StompClient client2 = await serverClient.connect(mqIp,
      port: mqPort, login: login, passcode: password);

  client2.sendJson('Domain changed', {'a':'b'});
  client2.disconnect();

  StreamController controller = new StreamController();
  Stream<String> stream = controller.stream.asBroadcastStream();

  StompClient client1 = await serverClient.connect(mqIp,
      port: mqPort, login: login, passcode: password);

  client1.subscribeString("Entity changed", 'Domain changed',
      (Map<String, String> headers, String message) {
    controller.add(message);
  }, ack: AUTO);

  await for (String message in stream) {
    String expectedEntity =
        '{\"a\":\"b\"}';
    expect(message, equals(expectedEntity));
    break;
  }

  client1.unsubscribe("Entity changed");
  client1.disconnect();
}, timeout: new Timeout(new Duration(seconds: 6)));

当我运行 pub run test我得到 Test timed out .

在绑定(bind)部分的 RabbitMQ 管理中,我得到:(Default exchange binding)消息总数为零:

enter image description here

是否可以在一个 channel 中发送和接收消息?

如果我使用 client1.subscribeString(ack: CLIENT,...)在 RabbitMQ 管理中,我收到一条消息“内存中”,但仍然测试 Test timed out而且我无法从 mq 收到消息。
enter image description here

也许我必须设置 amq.fanout 交换,但我该怎么做呢?

最佳答案

将 RabbitMq 与 dart 一起使用的最佳选择:mqtt package

关于rabbitmq - Dart 和 RabbitMQ 绑定(bind)交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45305362/

相关文章:

ruby-on-rails - 什么 ruby​​ 客户端对 rabbitmq 最稳定?

android - 在 flutter 中将图标添加到 DropDownButton(扩展)的左侧

c++ - 通过 websocket 发送 STOMP 帧

dart - 是否有相当于提交纸质输入的方法?

Dart |有什么方法可以将 List<int> 转换为 int 吗?

websocket - stompjs + rabbitmq - 创建自动删除队列

node.js - Log4j JMS 附加程序向 STOMP 客户端发送空消息

rabbitmq - RabbitMQ 收到消息时的时间戳

java - 长度为 1 的队列中未在rabbitmq 中确认的消息会发生什么情况?

RabbitMQ 等待消息超时