跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 物联网设备与 Web 应用服务器通信,用什么通信协议比较合适?
未分類
6 10 月 2020

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

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

資深大佬 : tctc4869 0

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

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

大佬有話說 (57)

  • 資深大佬 : Unmurphy

    xmpp

  • 資深大佬 : wysnylc

    mqtt http2/http3 websocket

  • 資深大佬 : qiayue

    查查资料,看看摩拜单车用啥协议,我不觉得你的设备会比摩拜单车多

  • 主 資深大佬 : tctc4869

    @wysnylc http3 ?

  • 主 資深大佬 : tctc4869

    @Unmurphy 这个 xmpp 协议,一般不都是用在 Im 聊天应用中么,消耗挺大的把?

  • 資深大佬 : lewis89

    websocket 你确定要在物联网这种低功耗的玩意上 保持长连接?

  • 主 資深大佬 : tctc4869

    @lewis89 这样啊

  • 資深大佬 : 12101111

    mqtt over Websocket

  • 主 資深大佬 : tctc4869

    @qiayue 谢谢,我去看看

  • 主 資深大佬 : tctc4869

    mqtt over Websocket ? mqtt 与 WebSocket 的融合?

  • 資深大佬 : crasa

    mqtt +1

  • 資深大佬 : server

    看 lz 描述, 还是直接上方案 自建基于 emqx 吧 ,走平台阿里 腾讯 都行. lorawan nb-iot 看钱下单

  • 資深大佬 : Bijiabo

    看设备量,我认为原则上不应该让设备和 Web 应用服务器直接通讯。

    设备 MQTT 协议到 IoT Hub,分发数据或者做处理。然后 Web 服务器再从处理好的数据中拿结果,或者通过 IoT Hub 提供的能力与设备通讯。

    不是直接通讯不行,要考虑安全、量产一系列问题。

  • 資深大佬 : Gitizen

    感觉 Mqtt over Websocket 可以吧,我最近也是想这样整,参考 Adafruit IO 的 Web 端,就是一个 JavaScript mqtt 客户端,就是 Mqtt over Websocket 。

  • 主 資深大佬 : tctc4869

    @crasa 问一下,如果两个设备要通过服务器进行一对一中转数据话,排除 WebSocket,什么协议是比较适合?

  • 主 資深大佬 : tctc4869

    @Bijiabo

    如果两个物联网设备要通过服务器进行一对一中转数据通信的话,排除 WebSocket 与 MQtt ?,还有什么协议是比较适合?

  • 資深大佬 : kra

    mqtt

  • 主 資深大佬 : tctc4869

    @Bijiabo 安全?别人 tcp 接口进行黑客入侵么?

  • 資深大佬 : lzyliangzheyu

    MQTT 算是用的比较多的吧,基于 TOPIC 的消息订阅机制,控制好 KEEPLIVE,性能开销也不大

  • 資深大佬 : crasa

    @tctc4869 两个设备相互订阅。数据量小的话,可以直接传输数据;数据量大的话可以只传输消息 key,设备拿到 key 之后用你所说的 web 应用服务器对消息的 key 进行数据处理,返回到指定设备。

    鄙人拙见而已,可以再参考下面大佬的回复

  • 主 資深大佬 : tctc4869

    @crasa 按你这样说的话,为了使在 mqtt 中两个设备之间能相互一对一通信,就得自己定义一下 mqtt 服务端中中某些 TOPIC 的消息处理流程

  • 資深大佬 : soulzz

    自定义协议完全可以
    设备直接发送字节流
    后端 netty 解完全可以

  • 資深大佬 : dndx

    MQTT 非常方便,还可以用阿里云的 MQTT 服务,量小的话免费额度就够了,非常稳定。

  • 資深大佬 : lychs1998

    MQTT 比较方便,现成的平台:EMQ

  • 資深大佬 : stranger75

    物联网内系统交互的话无脑推荐阿里云的 MQTT -doge

  • 資深大佬 : manhere

    coap

  • 資深大佬 : ihidchaos

    mqtt-sn,coap,lwm2m

  • 資深大佬 : opengps

    实际上物联网并非直接跟 web 通信,而是跟 socket 服务端通信,转发一层消息实现的物联网设备跟 web 通信

  • 資深大佬 : youla

    我正在做一个这样一个项目,用的是 websocket 。

  • 資深大佬 : janxin

    可以

  • 資深大佬 : ye4tar

    如果设备不用在意功耗问题,直接 socket 就好,不过建议你吧 socket server 剥离出来,设备和 web 服务都作为 client 端连接到 server 。这样是为了以后拓展 socket server,例如更换实现,集群,HA 能特性,而不用更改已有的 web 服务

    如果设备在意功耗,MQTT 就好,套路和上面一样。设备和 web 都作为 mqtt client,中间架 mqtt broker

  • 資深大佬 : kerro1990

    摩拜用的微软 azure 的 IOT 服务

  • 資深大佬 : ungrown

    @Gitizen 不理解,mqtt 再套一层 ws 是图个啥

  • 資深大佬 : Bijiabo

    @tctc4869 这种场景,使用 MQTT,配合云平台的规则引擎,直接把一个设备的数据转到另一个设备的 topic 中,我看一些业务场景的实现是这样做的。

    这些能力,云平台普遍会提供。

    置于安全,主要是设备 MQTT 链接时候的鉴权,认证 key 怎么来的,是需要注意的

  • 資深大佬 : geekvcn

    我觉得 QUIC 挺适合,因为物联网设备流量很小,也不怕运营商的 UDP Qos

  • 資深大佬 : chihiro2014

    RSocket

  • 資深大佬 : a22271001

    @geekvcn quic 不是 over udp 的吗

  • 資深大佬 : geekvcn

    @a22271001 就是 udp 才有优势啊

  • 資深大佬 : rbe

    mqtt 足够轻量,且能发又能收,基本能近似达到长连接的效果了。用阿里云的 mqtt 服务或者自建 emqx broker,qos 1 就能保证不丢消息。lz 应该说明一下为啥不愿意用 mqtt 啊?

  • 資深大佬 : rockyou12

    mqtt 功能强又够轻量,生态还非常成熟,不是很特别的业务想不到不用的理由

  • 資深大佬 : maitiantuzi

    可以开发个自己的网关,采集到设备数据后做持久化或者分发出去,比如通过 Kafka

  • 資深大佬 : hotsymbol

    kafka, socket, mqtt, grpc over http

  • 主 資深大佬 : tctc4869

    @Bijiabo 那有 N 对设备要通过 mqtt 服务端进行一对一通信怎么办,在同一个 Topi 内 c 的发布消息话,一个设备发布消息不就成了广播了,本来就是要一对一通信的

  • 資深大佬 : adek06

    MQTT +1

    用 EMQX 自建

  • 資深大佬 : des

    mqtt 、nats 、sqs 、nsq
    另外你是觉得 mqtt 不合适吗?

  • 資深大佬 : Bijiabo

    @tctc4869 每个设备都有自己的 N 个 topic,每个 topic 对应不同用途。云端规则引擎根据消息内容标识,以及业务逻辑指定的规则,进行消息的转发,可能是 A 设备的消息转到 B 设备的特定 topic,也可能是直接转到队列进行消息处理,也可能直接存储到数据库。

  • 資深大佬 : Gitizen

    @ungrown 这样可以方便通过防火墙,一般在网页用比较多。
    物联网硬件用原生 MQTT 连接服务器 MQTT Broker,Web 应用的前端用 Websocket MQTT 连接 Broker
    TCP MQTT Client <—-> MQTT Broker <—-> Websocket MQTT Client
    设备通过 MQTT 传来的数据实时在 Web 页面更新。

  • 資深大佬 : aguesuka

    我司是国内最大的电表厂。用的是 socket 透传=> 采集器 => 主站。 没有做过的人最好不要对不熟悉的领域发表意见。

  • 主 資深大佬 : tctc4869

    @des 没有这种想法

  • 主 資深大佬 : tctc4869

    @Bijiabo 这样的话,就得定制一下 mqtt 服务端的某些特定 topic 下的通信处理规则,似乎这是要写代码进行配置处理的情况啊,不知道有没有无编程代码的配置方式、

  • 資深大佬 : chnyuwen

    @tctc4869 EMQ X 的功能足够多,ACL 配置规则很容易的…

  • 資深大佬 : Bijiabo

    @tctc4869 平台会有操作界面,我记得看同事处理过。

  • 主 資深大佬 : tctc4869

    @Bijiabo
    @chnyuwen

    问一下,用 mqtt 做通信协议的话,为客户端进行消息推送,以及负责客户端 IM 聊天消息中转方面,能代替 WebSocket 么?

  • 資深大佬 : way2explore2

    相信我。用最成熟的协议 mqtt

    mqtt 完全可以做轻量 im,

  • 資深大佬 : Bijiabo

    @tctc4869 如果是基于 Websocket 实现的 MQTT,是可以的。

  • 資深大佬 : wudaye

    我们当时毫无经验,用的最简单粗暴可能也是最蠢的方式,直接 netty 和设备互相编解码 tcp 上的字节流,二进制协议用的交通部的一套部标协议

  • 資深大佬 : ungrown

    @Gitizen #47 啊这样,我还以为你说 iot 设备也套 ws 呢

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具