手机版 欢迎访问it开发者社区(www.mfbz.cn)网站

当前位置: > 开发

MaQue IotHub平台部署

时间:2021/6/6 12:03:09|来源:|点击: 次

IotHubServer

0. 使用的依赖软件版本

  • MongoDB 4.2.14
  • Redis 5.0.4
  • InfluxDB 1.8.1
  • RabbitMQ 3.8.11
  • Erlang 10.7 (RabbitMQ依赖的环境)
  • EMQX 3.2

注意事项

  1. InfluxDB 2.0后的版本变化很大,类sql语句查询变为JS查询,命令行管理工具也发生了变化,建议使用1.x版本
  2. 当使用web_hook插件的时候,EMQX需要同Iiothub安装在同一个平台,不能部署在远端。这是由于我们需要使用web_hook做上下线的处理,并且要把信息发送到iothub的端口上。
  3. EMQX 4.x版本的API发生了变化,若是安装最新版注意修改API接口
  4. 使用的IDE为WebStorm

软件安装链接

1. EMQX 3.2

软件地址 https://github.com/emqx/emqx/releases/tag/v3.2.0  文档:https://docs.emqx.cn/broker/v3.0/

2. MongoDB

软件地址https://www.mongodb.com/try/download/community

image.png

安装教程:https://www.cnblogs.com/xiaobug/p/13926225.html

3. redis 容器配置即可

4. InfluxDB 容器配置即可

docker run --name influxdb1.8 -p 8086:8086 influxdb:1.8.1

5. Erlang + RabbitMQ

window下配置 一键式安装 cmd 命令行输入  choco install rabbitmq

安装文档:https://rabbitmq.com/install-windows.html#chocolatey

安装失败的卸载问题:https://blog.csdn.net/qq_33413845/article/details/96429451

1. 错误总结

1.1 npm install 提示安装错误

如果出现以下错误

gyp ERR! find VS
gyp ERR! find VS msvs_version not set from command line or npm config
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
gyp ERR! find VS could not use PowerShell to find Visual Studio 2017 or newer
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - not found
gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
gyp ERR! find VS
gyp ERR! find VS **************************************************************
gyp ERR! find VS You need to install the latest version of Visual Studio
gyp ERR! find VS including the "Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
gyp ERR! find VS **************************************************************

则需要先安装Visual Studio和node-gyp

先以管理员的身份打开CMD,然后执行命令安装Visual Studio

npm install -g node-gyp
npm install --global --production windows-build-tools

1.2 安装托管服务插件

(1)nodeman

npm instal -g nodeman

当前项目的命令行下输入nodeman start

image.png

(2) foreman

npm instal -g foreman

当前项目的命令行下输入nf start

1.3 RabbitMQ报错

 

ae376e62051b5a97f1ad9fd45bae5fa.png

没有使用RabbitMQ Hook插件而又在Profile中使用了event.handle.js的缘故

Profile文件中注释掉event_handler: node event_handler.js即可

1.4 MongoDB报错

35264bc8f4e93d133928450a9f15b25.png

mongoDB连接数据库的密码不对,需要检查数据库的配置。简单粗暴点的话关掉mongodb.conf的安全认证

auth=false。安装上文安装教程操作不会出现这类问题。若是在docker中配置需要关联配置文件,还没实验。

1.5 控制台输出中文乱码问题

image.png

1.6 消息协议解析失败问题

15:54:40 api.1       |  events.js:288
15:54:40 api.1       |        throw er; // Unhandled 'error' event
15:54:40 api.1       |        ^
15:54:40 api.1       |  SyntaxError: Unexpected token � in JSON at position 0
15:54:40 api.1       |      at JSON.parse (<
15:54:40 api.1       |  anonymous>)
15:54:40 api.1       |      at D:\openSourceProject\IotHub_Server\services\message_service.js:107:41

EMQX的web_hook插件没有对payload设置解码协议

修改emqx_web_hook

web.hook.encode_payload = base64

 

Copyright © 2002-2019 某某自媒体运营 版权所有