4

我在让 RTI 路由服务与我的应用程序一起工作时遇到问题。

我创建了一个简单的 DDS 发布者应用程序和一个简单的 DDS 订阅者应用程序。应用程序通过 LAN 在 2 台不同的计算机上运行时进行通信,但我无法使用 RTI 路由服务让它们在 WAN 上工作。

我按照“RTI Routing Service - Getting Started Guide”中的“Example 8 - Using the TCP Transport with Routing Service”。我可以让 RTI Shapes Demo 在 RTI Routing Service 上运行。注意。我的应用程序使用与 RTI Shapes Demo 相同的域 ID

我的发布者在 PC1 上,订阅者在 PC2 上。我可以看到(使用 rtiddsspy)PC2 从 RTI 路由服务接收数据,但订阅者应用程序没有在 PC2 上收到通知。

在创建用于 RTI 路由服务的 DDS 应用程序时,有什么我必须特别注意的吗?

问候约翰

4

1 回答 1

4

我可以看到(使用 rtiddsspy)PC2 从 RTI 路由服务接收数据,但订阅者应用程序没有在 PC2 上收到通知。

根据这些信息,我想说最可能的原因是路由服务发布者和您的应用程序订阅者之间的 QoS 设置不匹配。您可以通过多种方式验证这一点:

  • 在系统运行时使用分析器工具(如果您可以使用它)。它可以显示在每个实体上使用的 QoS 设置,以及进行 QoS 匹配分析以发现不匹配。
  • 对您的应用程序 DataReader 使用默认 QoS 设置,这样就不太可能与您的任何路由服务 QoS 设置发生冲突。如果您的 DataReader 在调整后收到数据,那么您就知道 QoS 设置冲突是原因。

spy 使用的默认 QoS 设置不太可能导致这些类型的不匹配,这就是 spy确实收到消息的原因。

供您参考,您可以查看此QoS 策略参考指南/备忘单。在第一页上,列中包含 的任何 QoSYRxO可能导致不匹配。

于 2013-04-25T15:11:21.940 回答