当前位置: 首页 > 后端技术 > Python

dgiot通过grpc调用python算法库

时间:2023-03-26 16:49:50 Python

grpc简介gRPC是一个高性能、开源、通用的RPC框架,基于Protobuf序列化协议开发,支持多种开发语言。gRPC基于以下思想:定义一个服务并指定其可以被远程调用的方法(包括参数和返回类型)。在服务器端实现这个接口。并运行gRPC服务器来处理客户端调用。客户端上的存根可以具有与服务器相同的方法。dgiot_grpc_python连接Dgiot客户端dgiot与其他语言通信,通过grpc调用函数。在dgiot中,grpc通道处理所有交互。grpc相关的函数定义在dgiot_dlink下,分为登录、注销、发送三个函数。login登录函数用于登录grpc服务器,其参数为ClinetId,即客户端号。grpc通道建立后,通道启动时会登录通道id为ClinetId的python服务器。sendsend函数用于向python客户端发送消息。发送函数位于通道的handle_message函数中。通道收到消息并匹配到Message中的内容后,可以根据消息内容执行send函数调用python服务。send函数以map格式发送消息,消息在发送前会进行base64编码。logout注销函数用于断开与python服务的连接,一般在通道的关闭函数stop中调用。Python程序文件python程序示例位于apps\dgiot_dlink\priv\example\python3目录下,其目录结构如下:运行dlink_server文件启动python服务,接收信息的函数位于Dlink类下的SayHello方法。它接收两个参数,请求和上下文。参数含义如下:request:接收参数,request下的name属性为接收到的信息。上下文:接收参数。当前环境可以通过base64解码request.name,转换成字典获取原始信息。接收到参数后,通过HelloReply的message字段返回消息:完整的交互结果如下: