求 VB.NET MQTT 的相关资料或代码或教程之类的

赤脚_码农 2019-09-15 06:49:59
如题。最近在做智能家居,需要用到MQTT通讯,不知道,那么老哥那里有这方面的资料借小弟研究研究。
...全文
513 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
赤脚_码农 2021-01-19
  • 打赏
  • 举报
回复
https://blog.csdn.net/u012692537/article/details/80255010 这个帖子是C#的 用VB.NET 怎么弄呀?
赤脚_码农 2019-10-07
  • 打赏
  • 举报
回复
目前还没有弄清楚这个问题,但是已经用TCP长连接临时解决了。
赤脚_码农 2019-09-23
  • 打赏
  • 举报
回复
我是外行,我想找一个MQTT VB.NET的示例代码实际跑一下,这样才能最块的理解这个东西,说明啥的,跟本就不明白啥意思。
大鱼> 2019-09-23
  • 打赏
  • 举报
回复
EMQ 这个是基于MQTT的,也开源了
赤脚_码农 2019-09-23
  • 打赏
  • 举报
回复
我现在可以用UDP传感器给服务器发送数据,但服务器没办法给传感器发送数据由于有端口映射问题,比较麻烦,TCP那个我早些时候也看过,长连接也基本明白。但就是没实际操刀过MQTT。听说用MQTT是比较方便的。 现在的想法是传感器这边可以MQTT有这个库,应当没有问题,但VB.NET这边还没用过MQTT需要研究一下。如果这两方面的问题都解决了,那么就非常灵活了。自己想怎么玩就怎么玩了。 没有用阿里的是因为弄了几次都没领会阿里的IOT思想,也不知到怎么把控制数据,怎么把收到的数据写到数据库,有一系列麻烦。所以,我还是想自己弄MQTT这样比较灵活,不受限
XBodhi. 2019-09-21
  • 打赏
  • 举报
回复
MQTT.NET NUGET 里有
by_封爱 2019-09-17
  • 打赏
  • 举报
回复
其实本质就是tcp/ip通讯. 做了一层封装... 比如 客户端跟服务端建立了一个连接(长) 然后一直保持这种状态. S(server)跟C(Client) 之间互相通讯. 比如S要控制C的开关为开 那么发送 01 01 关闭就发送01 00 其中data[]代表开关 data[1]代表数值 差不多就这个意思. 只是MQTT里面封装过了 以及有订阅的说法.. 最简单的呢 其实就是找一套supersocket 或者其他这种tcp.server服务端.自己开发更灵活. 当然以上这种是采用tcp/ip 长连接 有效性特别好的一种方案. 还有一种方案呢 是http 当然这种肯定要使用轮询的方式. 比如3秒一提交本地数据 温度 开关 这种配置. 到服务器存储起来做查询用. 另外如果控制的话 给存储(数据库)设置一条数据,那么在3秒读取到这个状态之后 标识成已读. 并且实现控制.. 这种也就是国内最早的yeelink的解决方案. 比较简单 应用的也比较广泛. 所以 所谓的智能家居,其实就是实现了查询与控制.以及功能性的扩展. 重要的是思想跟流程.. 代码的话没什么特殊的地方.
清晨曦月 元老 2019-09-16
  • 打赏
  • 举报
回复
说资料的话,去看你开发用的MQTT服务器协议不就是最好的资料吗?
你可以尝试一下:
1、看看服务器是不是提供了MQTT的类库,如果没有去nuget一个
2、看范例,知道怎么用这个库
3、学习一下HttpWebRequest的使用
完整源码是没有的,这是一个中移物联的程序的核心代码

Private Function DoWebPostRequest(urlPath As String, apiKey As String, postData As String) As String
hr = WebRequest.Create(baseUrl & urlPath)
hr.Method = "POST"
hr.Headers.Add("api-key", apiKey)
hr.GetRequestStream().Write(Encoding.ASCII.GetBytes(postData), 0, postData.Length)
Dim sr As StreamReader = New StreamReader(hr.GetResponse().GetResponseStream)
Return sr.ReadToEnd()
End Function

Private Function GetDeviceInfoByMasterKey(DeviceID As String) As Dictionary(Of String, Object)
Return DoWebGetRequest("/devices/" & DeviceID, txtMasterKey.Text)
End Function

Private Function GetAllDevices() As Dictionary(Of String, Object)
Return DoWebGetRequest("/devices", txtMasterKey.Text)
End Function

Private Function DoWebGetRequest(urlPath As String, apiKey As String)
hr = WebRequest.Create(baseUrl & urlPath)
hr.Method = "GET"
hr.Headers.Add("api-key", apiKey)
Dim sr As StreamReader = New StreamReader(hr.GetResponse().GetResponseStream)
Dim tmp As Dictionary(Of String, Object) = json.DeserializeObject(sr.ReadToEnd())
If tmp("errno") = 0 AndAlso tmp("error") = "succ" Then
Return CType(tmp("data"), Dictionary(Of String, Object))
Else
Return Nothing
End If
End Function

赤脚_码农 2019-09-16
  • 打赏
  • 举报
回复
我看了下网上好像有MQTT的插件,估计用起来能简单些,还没有仔细研究,估计可行

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧