专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

基于。netCSocketWinFormMQTT客户端开发

  1、什么是MQTT?
  MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布订阅(publishsubscribe)模式的轻量级通讯协议,该协议构建于TCPIP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
  MQTT是一个基于客户端服务器的消息发布订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
  (具体描述自行百度)
  本文将基于。NetCSocketWinFormMQTT客户端开发,实现服务端连接,消息发布,消息订阅,取消订阅及接收服务端返回消息功能。
  2、连接服务端
  客户端连接服务端,启动异步接收服务端消息。
  1连接选项2varoptionnewMQTT。MQTTClientOption()3{4ClientIdthis。txtClientId。Text,5IpStringthis。txtServer。Text,6PortConvert。ToInt32(this。txtPort。Text),7UserNamethis。txtUserName。Text,8Passwordthis。txtPassword。Text9};10实例客户端11this。mqttClientnewMQTT。MQTTClient();12this。mqttClient。ClientReceivedMqttClientClientReceived;13varresultawaitthis。mqttClient。ConnectAsync(option);14if(result。Statefalse)15{16MessageBox。Show(result。Fail,提示,MessageBoxButtons。OK,MessageBoxIcon。Warning);17return;18}19开始接收20this。mqttClient。BeginReceive();
  3、发布消息
  客户端向服务端发送消息,主要包括主题,内容及消息质量。
  发送消息程序
  1privateshortPacketId1;2privateasyncvoidBtnPublishClick(objectsender,EventArgse)3{4this。btnPublish。Enabledfalse;5this。CursorCursors。WaitCursor;6try7{8shortqos0;9if(rdbLevel1。Checked)10qos1;11if(rdbLevel2。Checked)12qos2;1314vardatanewMQTT。PublishEntity()15{16Topicthis。txtTopic。Text,17ReloadSystem。Text。Encoding。UTF8。GetBytes(this。txtContent。Text),18Qosqos,19PacketIdPacketId20};21varresultawaitthis。mqttClient。PublishAsync(data,false);22if(result。Statefalse)23{24this。AppendText(发送失败:result。Fail);25return;26}27this。PacketId;28this。AppendText(发送成功,返回结果:result。Result);29}30finally31{32this。btnPublish。Enabledtrue;33this。CursorCursors。Default;34}35}
  4、订阅消息
  客户端订阅消息,主要包括过滤主题及消息质量。
  订阅消息方法:
  1privateasyncvoidBtnSubscribeClick(objectsender,EventArgse)2{3this。btnSubscribe。Enabledfalse;4this。CursorCursors。WaitCursor;56try7{8stringfailstring。Empty;910shortqos0;11if(rdbQos1。Checked)12qos1;13if(rdbQos2。Checked)14qos2;1516MQTT。SubscribeEntityentitynewMQTT。SubscribeEntity();17entity。Filterthis。txtFilter。Text;18entity。Qosqos;1920this。AppendText(开始订阅。。。);21if(mqttClient。Subscribe(this。txtFilter。Text,qos,outresult,outfail)false)22{23this。AppendText(fail);24return;25}26varresultawaitmqttClient。SubscribeAsync(entity。Filter,entity。Qos);27if(result。Statefalse)28{29this。AppendText(result。Fail);30return;31}3233this。AppendText(订阅成功!返回结果:result。Result);34MQTT。SubscribeHelper。Save(entity);3536DataRowdrDatathis。dtSubscribes。NewRow();37drData〔Id〕entity。Id;38drData〔Filter〕entity。Filter;39drData〔Qos〕entity。Qos;40drData〔Count〕0;41dtSubscribes。Rows。Add(drData);42}43finally44{45this。btnSubscribe。Enabledtrue;46this。CursorCursors。Default;47}48}
  5、取消订阅
  客户端取消某一订阅消息。双击订阅消息行,取消订阅消息。
  取消订阅方法:
  1privateasyncvoidDataGridView1CellDoubleClick(objectsender,DataGridViewCellEventArgse)2{3if(this。dataGridView1。CurrentCellnull)4return;56DataRowViewdrvthis。dataGridView1。CurrentRow。DataBoundItemasDataRowView;7if(drvnull)8return;910if(MessageBox。Show(确认取消当前选择:drv〔Filter〕。ToString()订阅?,确认,MessageBoxButtons。OKCancel,MessageBoxIcon。Question)!DialogResult。OK)11return;12try13{14this。AppendText(开始取消订阅。。。);15varresultawaitmqttClient。UnSubscribeAsync(drv〔Filter〕。ToString());16if(result。Statefalse)17{18this。AppendText(result。Fail);19return;20}21this。AppendText(取消订阅成功!返回结果:result。Result);22MQTT。SubscribeHelper。Delete(drv〔Id〕。ToString());23this。dataGridView1。Rows。RemoveAt(this。dataGridView1。CurrentCell。RowIndex);24}25catch(Exceptionex)26{27this。AppendText(取消订阅异常:ex。ToString());28}2930}
  6、接收服务端消息
  客户端接收服务端转发过来的消息。
  1privatevoidMqttClientClientReceived(MQTT。MQTTClientclient,MQTT。ReceiveResultreceive)2{3if(receive。Data!null)4this。AppendText(DataReceivedstatereceive。Statetopicreceive。Data。TopiccontentSystem。Text。Encoding。UTF8。GetString(receive。Data。Reload));5elseif(receive。State)6this。AppendText(DataReceivedstatereceive。Stateresultreceive。Result);7else8this。AppendText(DataReceivedstatereceive。Statefailreceive。Fail);9}
  至此,客户端工具主要功能简介完毕,不当之处,欢迎指正!
  客户端下载地址(码云服务器):https:gitee。comShiQuan25fullproductmanagementrawmasterWinMQTTClientWinMQTTClient。zip

数字科技赋能产业链!这场论坛共绘供应链科技生态未来齐鲁网闪电新闻12月14日讯近日,中国物流与采购联合会主办浪潮爱购云链承办的供应链科技高峰论坛成功举办,本次活动主题为科技融入双循环,数字构建新生态,就数字科技赋能产业链各行业的优空中畅流守护人交通强市向未来12月5日,一批重达2207公斤的货物在深圳机场搭乘航班前往美国洛杉矶。当天22时14分,货物完成提前报关的工作,仅在6小时26分之后就被装上飞机,与此前流程相比,节省至少一半时间长沙未来商业发展看这里!15大商圈9大商务中心!近日,长沙市商业和商务用地布局专项规划(20212035)批后公布。规划范围规划范围为长沙市六区一县,规划期限为20212035年。规划对象商业用地包括零售商业用地(B11)餐饮用钱进球场球场争锋棒球1号位动画钱进球场改编自森高夕次原作足立刑事著同名体育漫画,于2017年3月宣布动画化,由STUDIODEEN负责动画制作,于2018年4月6日起播出。动画第二期于2018年10月5日开抢占县城退烧药引争议,如何不让居民为药发愁?最近,随着疫情防控措施优化,不少人都开始自备退烧止痛类药物。有网友称,部分城市相关药品出现缺货情况。在一些社交平台上,有用户开始发布异地网购药品攻略,引发网友热议。图片来源相关社交等你提意见!湖北景区预约入园wifi覆盖将有大变化景区是否有网络wifi?景区能否网上预约一码入园?景区是否提供一键救援服务?不少网友在武汉城市留言板上建议景区更加科技化近日,湖北省文化和旅游厅官网就智慧景区建设评价规范在线征集网这个常见病育龄妇女需警惕!深圳39岁女子因它备孕7年无果对于很多人来说,孩子是一份人生的礼物,有了孩子之后,人生仿佛有了软肋,也有了盔甲。然而,对于一部分女性来说,孩子却成了她们触不可及的一个美好愿望,想要却不能是每一个想生育而不得的女异地网购抢占县城退烧药冲上热搜!律师高价倒卖需担责近日,由于不少人囤退烧药,布洛芬缓释胶囊等变得紧俏,很多商铺显示目前无货的状态,有的直接开启了预售模式,有的送达时间排到了明年一月。但在社交媒体上,出现了一批异地网购药品攻略的文章众专家给独立储能发展支招与会专家认为,短期内,储能可平抑电力不平衡,长期看,储能可平抑能量不平衡。要实现我国储能产业的大规模发展,除了技术要不断进步外,还需要完善政策机制,加速构建电力市场等。新能源空间和点亮芜湖第一盏电灯的吴兴周胡成业第1255期前世不修,生在徽州,十三四岁,往外一丢。吴兴周就是往外一丢的一个徽州绩溪人。皖南重镇,芜湖鸠江,电力照明,唯是兴周。吴兴周就是照亮芜湖不夜天的第一个徽州绩溪人。吴如何用机器人改变生活?上海市中小学机器人竞赛寻找解决方法请设计制作一台自动控制运行的智能末端配送小车,解决最后一公里的快递配送服务整个派送过程中,小车需通过车载传感系统感知道路环境,躲避障碍与行人,遵守红绿灯等交通规则,自动规划行车路线
铭记师恩,团圆中秋长白山八大景区联动优惠铭恩教师节,团圆中秋节,两个节日都有非凡的意义。很难得,今年的中秋节和教师节是同一天,九月也因此多了一点惊喜和幸运的意味!中秋节教师节已近,长白山景区重磅优惠正在进行中秋小长假期间中越交界有座东兴市,虽然在广西,但当地人却讲粤语,旅游热度高头条创作挑战赛中国国境线漫长,位于广西壮族自治区的东兴市是其中一座比较有代表性的边境城市,由防城港市代管,隔河与越南的芒街市相望。东兴是座非常受欢迎的旅游城市,也是广西壮族自治区重秋天,这黄色7宝要常吃,滋润平燥脾胃好,安稳健康过秋天秋天,这黄色7宝要常吃,滋润平燥脾胃好,安稳健康过秋天。这几天,冷空气有点频繁,秋天的特征显示出来。天凉了,养生方面也要重视起来。秋季是养脾胃的时候,整个夏季因为炎热导致我们吃好多进入秋天,建议少吃燥物和寒物,多吃5样,降燥不上火9月7日就是秋天的第三个节气白露,俗话说白露身不露,进入白露时节天气转凉,不宜再赤膊露体。大家应该注意保暖预防感冒,另外少吃寒凉的食物伤脾胃,以免着凉。俗话说秋不吃燥,这句话是指秋矿山公园的两种形态看乡村旅游如何让废弃矿山华丽变身导读在资源日趋枯竭,生态不断恶化的今天,许多矿山油田因资源或环境保护的因素不得不面对经济转型的难题。纵观国内外,以旅游带动产业升级是很多地区的共同选择。乡村旅游日益火热,生态旅游备子不教,父之过?作者薛熠俞炜中国反垄断法反垄断法修改表决通过序言在近年来国家持续强化反垄断执法,防止资本无序扩张的大背景下,反垄断法于近日完成了修订并将于2022年8月1日起施行。本次反垄断法修订科技为强军文化赋能原标题科技为强军文化赋能(主题)武警酒泉支队推进智慧军营建设掠影(副题)卢瑞东侯崇慧王兵强摄影报道官兵在图书室阅读电子书,开展读书交流活动。VR体验馆充满欢声笑语。小爱,小爱,请问索尼招聘新软件工程师帮助开发经典游戏新模拟器索尼目前正在招聘一位软件开发工程师,来为PS4和PS5的经典游戏库修复漏洞添加新功能并开发新的模拟器。该消息来自Resetera论坛上一位用户的分享,索尼正在通过领英招聘一位软件开与美国人有关?新加坡企业隐藏中国48年,如何年赚44亿你每天都吃的本以为是国货,实际上却是外国品牌。如果我说新加坡企业益海嘉里,你可能会一脑袋问号,可如果我说金龙鱼111调和油,相信大部分人都会听过。没错,潜伏中国48年的品牌金龙鱼,中国汽车业赢麻了在截至2021年的十年中,中国汽车出口量徘徊在101万辆左右。然而,在2021年,汽车出口将增加110,达到201。5万辆,首次超过210万辆,已经超过韩国(152万辆),领先于日中国两邻国引狼入室,亚太地区风雨欲来了刚刚过去的北约峰会,首次将对抗中国挑战写入了北约的战略概念文件。这个战略文件差不多是十年一修,确定十年内北约的优先事项和核心任务,也就是说,未来十年,遏制中国就成了北约的日常工作。
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网