物联网设备与 Web 应用服务器通信,用什么通信协议比较合适?

2020-09-30 15:37:43 +08:00
 tctc4869

想让物联网设备与 Web 服务器的应用端进行通信,常用的通信协议,除了 mqtt,http 还有哪些比较合适的?

应用层协议有一个 WebSocket,WebSocket 协议用在物联网设备与 Web 服务器之间的实现通信合适么?

5701 次点击
所在节点    程序员
61 条回复
maitiantuzi
2020-09-30 22:08:24 +08:00
可以开发个自己的网关,采集到设备数据后做持久化或者分发出去,比如通过 Kafka
hotsymbol
2020-10-01 00:06:48 +08:00
kafka, socket, mqtt, grpc over http
tctc4869
2020-10-01 00:32:07 +08:00
@Bijiabo 那有 N 对设备要通过 mqtt 服务端进行一对一通信怎么办,在同一个 Topi 内 c 的发布消息话,一个设备发布消息不就成了广播了,本来就是要一对一通信的
adek06
2020-10-01 00:50:49 +08:00
MQTT +1

用 EMQX 自建
des
2020-10-01 01:22:28 +08:00
mqtt 、nats 、sqs 、nsq
另外你是觉得 mqtt 不合适吗?
Bijiabo
2020-10-01 01:26:47 +08:00
@tctc4869 每个设备都有自己的 N 个 topic,每个 topic 对应不同用途。云端规则引擎根据消息内容标识,以及业务逻辑指定的规则,进行消息的转发,可能是 A 设备的消息转到 B 设备的特定 topic,也可能是直接转到队列进行消息处理,也可能直接存储到数据库。
Gitizen
2020-10-01 03:01:03 +08:00
@ungrown 这样可以方便通过防火墙,一般在网页用比较多。
物联网硬件用原生 MQTT 连接服务器 MQTT Broker,Web 应用的前端用 Websocket MQTT 连接 Broker
TCP MQTT Client <----> MQTT Broker <----> Websocket MQTT Client
设备通过 MQTT 传来的数据实时在 Web 页面更新。
aguesuka
2020-10-01 09:53:54 +08:00
我司是国内最大的电表厂。用的是 socket 透传=> 采集器 => 主站。 没有做过的人最好不要对不熟悉的领域发表意见。
tctc4869
2020-10-01 10:26:33 +08:00
@des 没有这种想法
tctc4869
2020-10-01 10:29:32 +08:00
@Bijiabo 这样的话,就得定制一下 mqtt 服务端的某些特定 topic 下的通信处理规则,似乎这是要写代码进行配置处理的情况啊,不知道有没有无编程代码的配置方式、
interim
2020-10-01 10:36:31 +08:00
@tctc4869 EMQ X 的功能足够多,ACL 配置规则很容易的...
Bijiabo
2020-10-01 10:46:57 +08:00
@tctc4869 平台会有操作界面,我记得看同事处理过。
tctc4869
2020-10-01 12:47:16 +08:00
@Bijiabo
@chnyuwen

问一下,用 mqtt 做通信协议的话,为客户端进行消息推送,以及负责客户端 IM 聊天消息中转方面,能代替 WebSocket 么?
way2explore2
2020-10-01 12:50:17 +08:00
相信我。用最成熟的协议 mqtt




mqtt 完全可以做轻量 im,
Bijiabo
2020-10-01 13:23:58 +08:00
@tctc4869 如果是基于 Websocket 实现的 MQTT,是可以的。
wudaye
2020-10-02 02:04:12 +08:00
我们当时毫无经验,用的最简单粗暴可能也是最蠢的方式,直接 netty 和设备互相编解码 tcp 上的字节流,二进制协议用的交通部的一套部标协议
ungrown
2020-10-02 10:28:34 +08:00
@Gitizen #47 啊这样,我还以为你说 iot 设备也套 ws 呢
interim
2020-10-07 10:39:25 +08:00
@tctc4869 直接去看 EMQ X 的文档就好了,查下 消息订阅模型。
tctc4869
2020-11-23 16:00:04 +08:00
@crasa
@12101111
@kra
@dndx
@lychs1998
@adek06
@des

用 mqtt 的话,不知这样一个场景合适不?有 n 个物联网设备与服务端建立 mqtt 的长连接,物联网设备不断向 mqtt 服务端发送数据,服务端频繁地不断接收数据。这个场景用 mqtt 合适吗
clf
2020-11-23 16:11:52 +08:00
@tctc4869 #59 EMQ(一个 mqtt service)就是处理这个场景的。其实就是一个消息队列的模式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/711917

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX