新年10个Flag实现中~
访问量
559.0K
文章数
123
运行天
716
一、MQTTBroker的需求1、基本需求1)支持mqtt3.1/mqtt3.1.1协议(可选mqtt5.0)3.1和3.1.1是最常见的协议版本,几乎目前生产的IoT设备都支持,所以Broker也必须支持。至于5.0版本,目前各大Broker都在努力支持,不过还需要一些时间才会普及。2)支持QoS0、QoS1(可选QoS2)各大厂商都至少支持了QoS1,保证消息到达。一般的场景下不会用到QoS2,所以可以选择性地考虑支持QoS23)支持遗嘱消息这是必须支持的功能,通常设备断开都不是主动断开的,而是没有电了才断开,属于异常断开,需要设置遗嘱消息来通知后端服务或者其他设备进行后续处理。4)支持持久化一些数据如QoS1消息、持久Session,需要支持持久化,这是MQTT协议规定的。5)支持多种
前言早上起来看邮件,看到一封被七牛云割韭菜的公告:内心冰冰凉,不过大家都要吃饭的嘛总不能一直免费下去。所以来研究一下对于我们这种穷人应该如何应对。一、七牛CDN加速流程主要流程分析1、用户通过浏览器访问我的网站(腾讯云服务器),网站下发HTML给浏览器,HTML里包含了图片URL,域名为cdn.bewindoweb.com,于是浏览器继续去这个域名获取图片。2、这个CDN域名是我在腾讯云域名解析构建的子域名,因此会去解析,我添加了一条CNAME,将cdn.bewindoweb.com指向了cdn.bewindoweb.com.qiniu.com,会继续解析这个七牛融合CDN的域名。3、七牛融合CDN看看有没有缓存(自定义缓存30天),如果有,则直接下发,流程结束。4、如果没有缓存,根据3种回
一、MQTT报文通信流程要做消息代理,首先需要解析协议。我们从抽象层面去考虑协议,不去更深挖到底哪个比特组合代表什么含义,这样有利于理清逻辑,而且早就有很多组件可以直接使用,只需要True和False代表什么含义,不需要知道001和010代表什么含义。以MQTT3.1.1为例来描述细节。1、术语定义1)客户端Client使用MQTT的程序或设备,它可以做的操作是:发布消息给其他客户端订阅主题取消订阅主题断开连接2)服务端Server作为发送消息的客户端和请求订阅的客户端之间的中介,也就是MQTTBroker,它可以:接受网络连接接受客户端发布的应用消息处理客户端的订阅和取消订阅请求转发应用消息给符合条件的已订阅客户端3)订阅Subscription包含一个主题过滤器(TopicFilter)
一、物联网和MQTT随着各家嵌入式产品越来越多,技术也越来越成熟,大家都开始想要随便搭载一个AI算法,然后声称为人工智能产品去售卖,像天猫精灵、小米智能音箱之类。这些产品大多都是嵌入式设备,例如小米出了很多传感器,可以用手机APP控制。这就是万物联结的网络,称为物联网(InternetofThings,IoT)。一个很重要的功能当然是通信了,以前的想法就是,要么用Wifi连上家里的路由器,然后搭建一台HTTP服务器来提供服务就好;要么直接用蓝牙等近场通信方式,手机直接和设备交换数据。无论哪种,对嵌入式设备的电量消耗都是巨大的,而且操作的体验并不好,就好像你用蓝牙还得凑近它10米以内。于是人们开始寻找更好的替代方式,1999年IBM开发的MQTT协议重新出现在舞台上。MQTT全称是消息队列遥测
前言【大目标】LeetCodeOJ刷完(目前976道题),赛码网BAT试题刷完(需要给自己定时)【计划】1、每周至少5道LeetCodeOJ,采用Java语言2、每周进行一次总结,总结所有题型的最佳答案,并学习它们的算法。3、每周五晚上定时赛码网BAT试题一套,采用标准的计时方法。【说明】因为大部分只是刷题,所以不占用博客,放到WIKI,遇到特殊的算法再以单独学习算法的形式写博客。LeetCodeOJ刷题目录序号题目相关AnyCodes分享码 1两数之和 32c36f223 2两数相加 d376ee224 3无重复字符的最长子串 826f3f225 4寻找两个有序数组的中位数 9aafc3226 5最长
前言首先申明,有条件请支持正版。最近总是有时候卡死之类的,然后一看进程,Mircosoft软件保护平台服务,就是小马KMS的进程啦,而且我下载到的还是包装后的小马KMS,被包装了一个脚本,每次KMS周期运行的时候,就会修改浏览器指向hao123……而且360还时不时报毒杀KMS,心累。网上已经有纯净版小马KMS了,大致就是去掉了包装脚本的钩子,48下载积分……所以是时候自己搭建KMS服务器了,找了好久终于找到这个帖子《windows激活工具(win8,win10)》,研究下脚本就知道它是访问的远程KMS服务器:大部分都失效了,沧水(http://kms.cangshui.net/)的还能用:于是找到了《可用于激活windows108.18720082012等众多版本,这简单几个步骤带你完成》
前言前言有点长,讲述Docker和DockerCompose用来做什么的和一些使用感受,不看可跳过。随着我使用Docker越来越频繁,开始逐渐理解一些Docker的作用了。刚接触Docker总是会听说“Docker是Linux上的虚拟机”,然后就会把Docker和Vmware来类比,虽然有些相似,但你用多了就会发现区别:Docker镜像用起来最大的感受就是,它的读写是不会保存的。Vmware不管你在虚拟机操作了什么,它都会保存,而Docker更多地是一个独立的镜像,可以无限复制到任意安装了Docker的机器上跑,而且对外表现一致——这给服务的部署带来了便利。比如我买的服务器到期了,续费比活动购买新机要贵得多,这时候就需要迁移服务,如果我直接安装到机器上,那迁移服务就很累了,可能会依赖很多组件
前言相信经历过很久以前初代JavaWeb开发的程序员都应该有体验,在那个时候是没有Maven这种东西的,每引入一个新功能,就需要手动下载依赖的JAR包导入,还可能和已经导入的JAR包产生冲突。更难受的是,运行的时候抛出异常查半天,到处修改业务代码以为自己写错了,结果发现问题处在JAR包冲突……所以,之前一直在用师兄师姐传承下来的经过多年验证的Jar包组……而有了Maven,所有的JAR包问题都不用担心,可以完全集中精力写逻辑了。当然,管理Jar包只是Maven的其中一个功能,它还可以用来拆分和聚合模块,将整个大项目分成多个独立的模块分别开发,然后自动部署。本文将只注重基础的管理Jar包的基础功能,其他的以后填坑。Maven简单入门Maven读音官方的读法应该是[ˈmevən],“美ven”,
上一页 1 ...23456... 14下一页