Google Cloud Pubsub Async Streaming API in C++
Google Cloud Pubsub Async Streaming API in C++
我正在尝试查找有关通过异步 grpc 使用 Pubsub Streaming API 的文档,但找不到任何文档。
我有这个简单的代码来读取主题中的所有消息:
auto creds = grpc::GoogleDefaultCredentials();
auto stub = std::make_unique<Subscriber::Stub>(
grpc::CreateChannel("pubsub.googleapis.com", creds));
ClientContext context;
std::unique_ptr<ClientReaderWriter<
StreamingPullRequest, StreamingPullResponse>> stream(
stub->StreamingPull(&context));
StreamingPullRequest request;
request.set_subscription(
"projects/test/subscriptions/test-subscription");
request.set_stream_ack_deadline_seconds(10);
stream->Write(request);
StreamingPullResponse response;
while (stream->Read(&response)) {
StreamingPullRequest ack_request;
for (const auto &message : response.received_messages()) {
ack_request.add_ack_ids(message.ack_id());
}
stream->Write(ack_request);
}
基本上我想做同样的事情,但使用异步 rpc 调用,所以这段代码在回调中调用:
StreamingPullRequest ack_request;
for (const auto &message : response.received_messages()) {
ack_request.add_ack_ids(message.ack_id());
}
stream->Write(ack_request);
你能帮我举一个简单的异步代码示例吗?
目前Google Cloud Platform C++Pub/Sub 库尚未由供应商正式宣布,并且没有用于实现的 ETA,因此代码库作为概念证明存在,仍然没有完整的文档,没有像样的使用示例。您可以跟踪社区在此 Github 线程之后进一步开发库的工作。
据我所知,您正在寻找通过异步 gRPC 调用执行 StreamingPull 的任何见解,查看 @Manuel Menzella 发布的答案,我建议您查看他在概念上适合您的用例的方法。
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 在gtest.中使用fff.h模拟系统API
- 有没有任务栏API可以立即应用注册表更改
- Google Cloud Pubsub Async Streaming API in C++
- Equivalent of OpenCv c++ api Vec2f,norm, acos in emgucv csha
- RESTful API, C++restSDK, JSON in C++
- cvc4 mkconst from std::string in C++ api
- DirectX API中的" [in] const D2D1_RECT_F *layoutRect"和"const D2D1_RECT_F&layoutRect"有什么区别
- CoreAudio API in Borland Builder C++ 6
- C++ 赢 API 函数'not declared in this scope'
- 在C++中使用libCurl API的身份验证SAIO(swift all in one)