C++ SDK:使用相同的GreengrassCoreIpcClient进行发布和订阅

0

【以下的问题经过翻译处理】 你好,

这是关于[1]的参考。

我正在尝试运行混合的C和C++代码,但目前遇到了以下应用程序的问题。我没有任何关于C++的经验。

该应用程序在一个主题abc/world上接收消息,并从回调中调用另一种方法在另一个主题xyz/world上发布样本消息。

以上应用程序在接收第一条消息后停止接收消息,没有任何错误,并且甚至没有发布到主题xyz/world

但是,如果我从回调中注释掉*publishMessage()*方法,则此应用程序可以正常运行并能够接收消息。

请查看下面的日志。

发生了什么问题?

参考资料 -

[1] - https://forums.aws.amazon.com/message.jspa?messageID=1000581#1000581

profile picture
EXPERTE
gefragt vor 6 Monaten25 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 嗨,edgegoldberg,

你对这个问题的解释和修复是正确的。正如文档https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-subscribe-operations所述,在订阅处理程序中,你不能在subscription handler中阻塞IPC操作的响应(在你的情况下,是发布操作)。你应该在另一个线程中进行新的请求并等待其结果,就像你已经实现的一样。

谢谢,

Shagupta

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen