DbPoxy代理服务
IOT应用场境中最常见的是传感器数据上传到数据库,而DbPoxy即为此类应用提供了低构建成本的解决方案,配合Coolpy Gen Protocol(CGP)物联网(IOT)通用控制协议实现平台即服务的低技术成本解决方案。
测试DbPoxy功能即以本书中的 《程序安装》章节为例。展示如何通过Coolpy Gen Protocol(IOT通用控制协议)测试最简单的对mongodb数据库进行插入、查询、修改、删除数据操作。
先决条件
按《程序安装》章节部署整套CP7平台
按《消息通信功能测试》章节安装MQTTLens通信测试工具
开始测试
CP7 DbPoxy代理服务器配置文件
运行DbPoxy
以上信息已表达连接mongodb数据库ping成功,说明连接已成功建立。第二行提示:DbPoxy所在主题为dbpoxy/mongodb/get。操作密令为:password
向数据库插入一条数据记录
上文是Coolpy Gen Protocol(CGP)协议之一,向数据库发起插入一条新记录操作。(此应用在IOT领域最常用的场境是传感器数据上传到数据库中保存)
CGP协议名 | 数据类型 | 说明 |
db_name | string | 数据库名称(如数据库名不存在DbPoxy会自动创建) |
table_name | string | 数据库表名称(如不存在会自动创建) |
op_name | string | 数据操作符(insert,delete,update,query)分别是增删改查 |
token | string | 鉴权口令,与DbPoxy配置文件中的AccessToken一至才能被执行 |
msg_id | int64 | 执行结果回传时会跟随一起把此项原封不动带回,此功能在多消息操作后区分回调消息对应的操作而设计 |
ref_topic | string | 执行结果回调主题,当执行完成或执行出错会把结果发送到此主题,消息编码同时支持json及msgpack两种,当DbPoxy在尝试解码出错的情况下不会有任何错误提示返回,原因是此回调主题在消息体内。 |
ref_qos | int | 回调主题消息质量标识(0,1,2) |
value | json/string | 需插入数据库的数据内容,当mongodb时间为json类型,当sql数据库时为string类型的sql语句 |
在发送指令前需在当前连接订阅消息中以消息质量控制ref_qos订阅ref_topic主题,用以接收指令执行结果回传消息通知。
以上操作说明:
1.填写Publish主题为DbPoxy配置文件中的Topic值,并以配置文件的qos为消息质量控制
2.填写CGP协议消息,插入一条记录到数据库
3.订阅指令执行结果回调主题,并以qos一致控制消息质量
4.点击PUBLISH按扭发送指令到DbPoxy。DbPoxy收到指令后会按协议内容执行,结果会推送到ref_topic主题。
5.接收到执行结果,消息id及操作结果
CGP协议名 | 数据类型 | 说明 |
msg_id | int64 | 指令自身id标识,回发接收到执行指令中的内容 |
result_op | bool | 操作是否成功,true为成功,false为失败 |
result_changes | int64 | 操作影响了多少条数据库记录 |
result_data | []objectid/[]int64 | 操作返回有价值结果内容,本例中返回的是插入记录的mongoid新记录的ObjectId数组,如果为sql数据库会返回int64新数据记录ID |
验证数据是否写入数据库
本例使用NosqlBooster连接到mongodb数据库,并查验本例操作中的添加的两条数据库记录正常。
完整dbpoxy.yml配置文件示例
更多请查阅《CGP协议》章节
Last updated