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
专家
已提问 5 个月前22 查看次数
1 回答
0

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

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

谢谢,

Shagupta

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则