mqtt服务器EMQX的消息发布服务质量QOS和离线消息Retained
1:关于消息发布服务质量 MQTT设计了一套保证消息稳定传输的机制,包括消息应答、存储和重传。在这套机制下,提供了三种不同层次QoS(QualityofService)消息发布服务质量,也可称为QualityofService等级,一共有3个QoS等级:QoS0,Atmostonce,至多一次;消息发布完全依赖底层TCP/IP网络,会发生消息丢失或者重复,这一级别可用于如下情况,环境,传感器数据,丢失一次度记录无所谓,因为不久之后会有第二次发送;QoS1,Atleastonce,至少一次;确保消息到达,但消息重复可能发生;QoS2,Exact...[>>…]
mqtt服务器EMQX的安装使用
EMQX是中国杭州一家科技公司(公司名叫EMQ)发布的面向5G和物联网市场的消息与流处理开源软件。公司创始团队主要来自华为、IBM、亚马逊和苹果,并坚定支持软件开源。难得难得,2013年,EMQ作为一个开源项目在Github上发布,目前已成为全球市场广泛应用的开源MQTT消息服务器。 EMQXBroker是其完全开放源码的发布订阅模式一款mqtt服务器,基于高并发的Erlang/OTP语言平台开发,支持百万级连接和分布式集群架构。MQTT5.0支持、高并发低时延、扩展模块与插件、跨平台安装部...[>>…]
物联网传输协议MQTT以及常见的mqtt服务器
MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是一个由IBM主导开发的物联网传输协议,主要用于即时通讯,物联网M2M,物联网采集等。它被设计用于轻量级的发布/订阅式消息传输,比较适合于在低带宽、不可靠的网络进行远程传感器和控制设备通讯等,它的核心设计思想是开源、可靠、轻巧、简单,正日益成为物联网通信协议的重要组成部分。有以下主要特性:1.非常小的通信开销(最小的消息大小为2字节);2.支持各种流行编程语言(包括C,Java,Ruby,Python等)且有易于使用的客户...[>>…]
内网穿透工具frp的应用-frpc,frps
内网穿透即内网映射,可以将局域网变公网,从而可以让外网访问本地局域网内的服务。内网穿透原理技术有这么几种:1,通过公网服务器转发,这是目前市场上大多三方的内网穿透服务方式。2,P2P穿透,端对端连接通信,即常说的UDP打洞方式,受国内复杂网络环境影响打洞成功机率不高。3,通过公网服务器响应对二端握手穿透,穿透成功时直接二端P2P打洞直联。 内网穿透工具有很多,比如Ngrok、花生壳、frp。原理基本一样,这里主要了解一下FRP,frp分为客户端和服务端,frp...[>>…]
高德地图通过将IP地址转换成经纬度-只能定位到城市范围
因业务需要,将IP地址转换成经纬度,记录一下。高德地图IP地址定位调用接口文档地址:https://lbs.amap.com/api/webservice/guide/api/ipconfig .调用方法很简单,先申请web服务API密钥(Key);注意根据你的调用方式选择key,我这里是通过web接口调用,所以选择web服务。不然会把key的类型错误。然后拼接HTTP请求URL,并带上第一步申请的Key;请求如下url:https://restapi.amap.com/v3/ip?ip=114.247.50.2&output=json&key=<用户的key>output可以是xml,也可以是json,如请...[>>…]
Git如何删除提交的log日志记录
也许因为某些原因我们需要删除一些提交记录,比如我们在中间不小心提交了一些重要密码文件到git上,而只通过删除文件并不能删除记录,在git项目中可以通过提交历史查看到我们之前提交的这些文件,从而暴露资料。那怎么删除commit的记录呢? 有办法的,不过操作的时候要小心。首先我们要删除操作记录,我们要找到我们要删除到的哪条记录,从而git知道我们要删除掉哪些提交记录,可以在项目管理中页面-/commits/master中找到这个记录,然后在右边可以看到有按钮copycom...[>>…]
Chrome插件jsonView的两个问题
jsonView是Chrome中的一个插件,可以让接口返回的json在浏览器里格式化、着色、美观、易读。一直在Chrome浏览器中使用jsonView插件。在使用中也发现它有两个问题:1:会导致刷新一次请求两次. 之前有一个问题印象特别深刻,就是碰到过进行代码调试的时候发现浏览器刷新一次服务器总执行两次,开始还一直排查服务端的代码问题,之后断定代码正常才发现是这个jsonView插件捣鬼,开启这个插件后就可能会出现向服务端请求两次(可能结果是json会导致它运行)。2:对返回的j...[>>…]
windows下使用命令行运行PHP时cmd窗口中的中文乱码问题
习惯了在linux下使用定时任务和运行php的cli命令,实际在windows下运行CLI也是很方便的事,我这里使用的是VisualNMPx64版本,安装选用的PHP7.1版本,直接找到PHP文件包的地址在cmd命令行中使用php.exe执行即可,不过在使用时发现执行结果里中文显示都是乱码,确实不爽,怎么解决,很方便:1.临时解决办法: 在cmd窗口中运行chcp65001,执行之后,cmd的编码格式就是UTF-8,chcp65001是什么意思呢?CHCP是一个计算机指令,能够显示或设置活动代码页编号。其中65001就是...[>>…]
svn执行update操作后出现:Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
svn刚刚执行一个删除文件夹的操作,但随后进行命令执行的时候提示报错:Error:Previousoperationhasnotfinished;run'cleanup'ifitwasinterrupted.Error: Pleaseexecutethe'Cleanup'command.看起来是提示之前的命令还在执行,但过了阵子仍然是这样的错误。看网上有不少碰到这个问题的记录,但解决方案是下载sqlite3.zip进行一系列的操作太麻烦了。 既然提示中说了使用Cleanup来解决,于是我在使用cleanup的时候进行了钩选一些额外选项:Refreshshelloverlays如下...[>>…]
消息队列beanstalkd上的error: JOB_TOO_BIG的解决
今天一个处理处理消息队列的程序出现了报错,其中往beanstalkd添加消息的时候出现:Puterror:JOB_TOO_BIGinbeanstalk-client/src/Client.php:283,出现此报错的原因是往beanstalkd添加的消息个数(待处理)超过了最大限制,限制是多少呢?我们可以使用beanstalkd-z选项的值,默认是(defaultis65535)。通过telnetbeanstalkd端口查看stats返回结果可以看到,因此这里需要将此配置进行修改。 我的系统是Ubuntu16.04,beanstalkd是使用aptgetinstall安装的,如果你是命令...[>>…]