关于python:dgiot通过grpc调用python算法库

46次阅读

共计 856 个字符,预计需要花费 3 分钟才能阅读完成。

grpc 介绍

gRPC 是一个高性能,开源和通用的 RPC 框架,基于 Protobuf 序列化协定开发,且反对泛滥开发语言。gRPC 基于以下理念:定义一个服务,指定其可能被近程调用的办法(蕴含参数和返回类型)。在服务端实现这个接口。并运行一个 gRPC 服务器来解决客户端调用。在客户端领有一个存根可能向服务端一样的办法。

dgiot_grpc_python 连贯

Dgiot 客户端

dgiot 通过 grpc 与其余语言互相通信以及函数调用。在 dgiot 中,以一个 grpc 通道解决所有交互。而 grpc 相干函数定义在 dgiot_dlink 下,分为 login,logout,send 三个函数。

login

login 函数用于登录 grpc 服务端,其参数为 ClinetId,为客户端编号。建设 grpc 通道后,将会在通道启动时以通道 id 为 ClinetId 登录 python 服务器。

send

send 函数用于向 python 客户端发送音讯。send 函数位于通道的 handle_message 函数中。在通道接管到音讯,并且匹配上 Message 中内容后即可依据音讯内容执行 send 函数调用 python 服务。
send 函数以 map 的格局发送音讯,音讯在发送前将通过 base64 编码。

logout

logout 函数用于断开与 python 服务的连贯,个别在通道的敞开函数 stop 中调用。

Python 程序文件

python 程序示例位于 apps\dgiot_dlink\priv\example\python3 目录下,其目录构造如下:

运行 dlink_server 文件即可启动 python 服务,接管信息函数位于 Dlink 类下 SayHello 办法。其接管 request 和 context 两个参数,参数含意如下:

  1. request:接管参数,request 下 name 属性为接管到的信息。
  2. context:接管参数,以后的环境
    通过对 request.name 应用 base64 解码并转为字典后即可获取本来的信息。

    接管参数后通过 HelloReply 的 message 字段返回一条信息:

    残缺交互后果如下图:

正文完
 0