您的位置:首页 > 文旅 > 美景 > 使用RPC服务的步骤

使用RPC服务的步骤

2024/10/5 22:28:12 来源:https://blog.csdn.net/weixin_62518305/article/details/140999837  浏览:    关键词:使用RPC服务的步骤

 服务方

1.首先服务的发布方在proto文件里面描述发布的方法,例如发送一个注册方法。

message RegisterRequest
{uint32 id = 1;bytes name = 2;bytes pwd = 3;
}message RegisterResponse
{ResultCode result = 1;bool sucess = 2;
}service UserServiceRpc
{rpc Login(LoginRequest) returns(LoginResponse);rpc Register(RegisterRequest) returns(RegisterResponse);
}

2.之后protoc  user.proto  --cpp_out=./生成cpp文件

生成完cpp后加入到服务方的代码中,我们将服务方的类继承于service UserServiceRpc类,重写我们的register类,框架负责调用该方法。

 void Register(::google::protobuf::RpcController* controller,const ::fixbug::RegisterRequest* request,::fixbug::RegisterResponse* response,::google::protobuf::Closure* done){uint32_t id = request->id();std::string name = request->name();std::string pwd = request->pwd();bool ret = Register(id, name, pwd);response->mutable_result()->set_errcode(0);response->mutable_result()->set_errmsg("");response->set_sucess(ret);done->Run();}
};

调用方

根据proto文件里发布的方法,来写调用方的代码。

int main(int argc, char **argv)
{// 整个程序启动以后,想使用mprpc框架来享受rpc服务调用,一定需要先调用框架的初始化函数(只初始化一次)MprpcApplication::Init(argc, argv);// 演示调用远程发布的rpc方法Registerfixbug::RegisterRequest req;req.set_id(2000);req.set_name("mprpc");req.set_pwd("666666");fixbug::RegisterResponse rsp;// 以同步的方式发起rpc调用请求,等待返回结果stub.Register(nullptr, &req, &rsp, nullptr); // 一次rpc调用完成,读调用的结果if (0 == rsp.result().errcode()){std::cout << "rpc register response success:" << rsp.sucess() << std::endl;}else{std::cout << "rpc register response error : " << rsp.result().errmsg() << std::endl;}return 0;
}

这样就完成了一个服务方和调用方对rpc服务的使用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com