在 C++ 中使用 boost/beast websockets
我已经阅读了野兽 websockets 不支持非阻塞读取的问题,以及无法检查数据是否可用以及在单独的线程中进行读取和写入可能不是线程安全的事实。
那么,我遇到的问题是找出解决这个问题的正确方法:
IBM Watson 语音到文本 WebSockets API 允许您在音频数据块可用时发送它们(或从现有文件中分块发送)。但是,您不会获得每个块的文本回复。
相反,您会一直向它发送音频数据,直到它识别出暂停或话语结束,然后它最终会发回一些结果。
换句话说,您可能必须在读取返回任何内容之前执行多次写入,并且无法预测您将必须执行多少次写入。
如果没有非阻塞读取功能,并且没有将阻塞读取放在单独的线程中,我如何继续发送数据,然后仅在可用时检索结果?