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
전문가
질문됨 6달 전31회 조회
1개 답변
0

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

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

谢谢,

Shagupta

profile picture
전문가
답변함 6달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인