我已经部署了emqx服务,在开发前端部分时很头疼,因为据我了解,emqx是不能直接作为服务器的吧,只能进行消息转发,难道我需要用nodejs或java开发一个后端服务,通过后端服务对接emqx吗?
如果是这样的话,也就意味着,前端希望发送一个数据给物联网设备就要经过:前端-后端服务-emqx服务-物联网设备,正常的物联网架构是这样的吗?
物联网设备大多是通过协议交换数据的。
emqx主要作为服务端,比如MQTT协议的服务端,此时可以通过前端或后端服务发起MQTT协议请求到emqx,再经由emqx转发给物联网设备。
具体的协议根据物联网设备而定,而大部分协议都无法剥离开物联网平台,需要借助如emqx、华为OC等平台。少部分如TCP、HTTP等协议的物联网设备,可以不经过物联网平台的转发直接对接,当然具体情况需要根据业务来定(比如特殊的设备物模型或需要编解码的设备数据等)。
一个典型的物联网系统通常包括以下几个部分:
物理层:物理层主要由传感器、控制器、接口和通信组件等组成,用于采集实际环境中的物理数据并将其转换为电信号。
网络层:网络层负责传输数据和控制信号,主要由网关、路由器、交换机等组成。
数据层:数据层负责存储、管理和分析物理层采集的数据。主要由服务器、云端平台、数据库等组成。
应用层:应用层负责提供物联网系统的上层应用,包括监控、控制、管理和服务等。
用户界面:用户界面是连接用户和系统的桥梁,包括网页界面、手机APP等。
这些部分之间通过通信协议连接,保证系统的正常运行。
物联网系统构成也可能会因为需求不同而有所不同,比如某些系统不需要应用层或者用户界面等。