Dart和RabbitMQ绑定交换

Dart和RabbitMQ绑定交换,rabbitmq,dart,stomp,Rabbitmq,Dart,Stomp,我使用STOMP,并编写了一个测试: 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'}); clien

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

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)));
test('可以订阅并向mq服务器发送事件',()异步{
StompClient client2=等待serverClient.connect(mqIp,
端口:mqPort,登录名:login,密码:passcode:password);
sendJson('Domain changed',{'a':'b'});
client2.disconnect();
StreamController=新的StreamController();
Stream=controller.Stream.asBroadcastStream();
StompClient client1=等待serverClient.connect(mqIp,
端口:mqPort,登录名:login,密码:passcode:password);
client1.订阅(“实体已更改”,“域已更改”,
(映射头、字符串消息){
添加(消息);
},ack:AUTO);
等待(流中的字符串消息){
字符串期望值=
“{\'a\':\'b\'”;
期望(消息,等于(期望));
打破
}
客户1.取消订阅(“实体变更”);
client1.disconnect();
},超时:新超时(新持续时间(秒:6));
当我运行
pub运行测试时
我得到
测试超时

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

是否可以在一个通道中发送和接收消息

如果我在RabbitMQ管理中使用
client1.subscribebestring(ack:CLIENT,…)
,我会收到一条“内存中”的消息,但测试仍然
test超时
,我无法从mq获取消息。


也许我必须设置amq.fanout exchange,但如何才能做到这一点?

将RabbitMq与dart结合使用的最佳选择: