如何做自动网站课件ppt模板免费下载网站

news/2025/9/22 20:24:45/文章来源:
如何做自动网站,课件ppt模板免费下载网站,wordpress 模板制作,网站概念设计TTIoT云端物联网组件;面向JAVA;以事件为驱动;为设备提供安全可靠的连接通信能力TTIoT简介TTIOT的Broker采用MQTT协议与设备进行交互,可以应用在数据采集、能源监控、智能生活、智能工业、农业水利等场景;向下提供连接海量设备服务#xff0c;支撑设备数据采集上云#xff0c;…TTIoT云端物联网组件;面向JAVA;以事件为驱动;为设备提供安全可靠的连接通信能力TTIoT简介TTIOT的Broker采用MQTT协议与设备进行交互,可以应用在数据采集、能源监控、智能生活、智能工业、农业水利等场景;向下提供连接海量设备服务支撑设备数据采集上云支持M2M无侵入集成第三方服务端提供事件API,实现远程控制设备;此外TTIOT将会持续开源物联网套件如多协议引擎、设备管理、规则引擎、数据分析等插件为各类IoT场景和行业开发者赋能。Broker组件,TTIot把TCP/IP协议族上的协议都转换成了事件池开发者只需要面向事件编程即可。2.1版本重要更新增加SSL加密功能同时支持https\wss\tls协议在配置文件添加ssl:enabled: truecertificateType: PKCS12certificatePath: /Users/shijun/Desktop/TTIOT/ca/server/3938.pfxcertificatePassword: 5J7HDiJM2.0版本重要更新多协议转换引擎-一个端口支持三种协议HTTP/WEBSOCKET/TCP上层协议使用的依然是MQTT支持使用这三种不同协议的客户端相互通信(详见使用说明.10)使用HTTP协议向设备投递消息,URI:/mqtt,请求体如下Headers:userName //设备帐号tenantId //租户编号password //设备密码Body:{mqttQos: 1, //消息质量payload: { //消息体rule: chat,content: hello},retain: false, //是否为retain消息topic: /m //推送的话题}支持消息路由引擎Ruler-给消息定义规则(详见使用说明.12)功能认证授权(auth)TTIoT的容器对发布的事件都会自动检查登陆状态对未授权的设备进行自动拦截只要在相关的类添加Eventor(auth true)即可Eventor(value AppProtocalMqttConstant.PINGREQ,auth true)public class MqttPingEvent extends MqttApplicationEvent {public MqttPingEvent(MqttMessage msg, ChannelHandlerContext context) {super(msg, context);}}多租户(saas)TTIot的设备归属为租户其devName与topic对每个租户唯一clientId构成为tenantId-devName-xxxx(保留字段)并且提供接口将设备进行录入例如dbHelper.saveTenant(tenant);dbHelper.saveDev(device);控制反转(IOC)TTOT放弃第三方框架IOC框架内部维护了一个轻量的容器在项目启动时对所有的Listener扫描并且接管消息的订阅与发布(Qos)(1)支持Qos(Quality of Service)TTIot提供mqtt三种消息质量模型即Qos0最多一次的传输Qos1至少一次的传输Qos2只有一次的传输该方案适应任何网络场景特别是网络较差的场景(2)通配符与消息降级TTIot提供主题层级分隔符/,单层通配符,多层通配符#设备实现灵活订阅心跳检测(Idle)TTIot 提供两种测活机制(1)服务端定义TTiot:heartbeatTimeout: 10(2)客户端通过设置可变头里面的keepAliveTimeSeconds定义保留消息与消息遗嘱(1)Topic只有唯一的retain消息Broker会保存每个Topic的最后一条retain消息每个Client订阅Topic后会立即读取到retain消息不必要等待发送。订阅Topic时可以使用通配符就会收到匹配的每个Topic的retain消息发布消息时把retain设置为true即为保留信息。(2)MQTT本身就是为信号不稳定的网络设计的所以难免一些客户端会无故的和Broker断开连接当客户端连接到Broker时可以指定LWTBroker会定期检测客户端是否有异常当客户端异常掉线时Broker就往连接时指定的topic里推送当时指定的LWT消息。使用说明配置文件配置文件延续了yaml风格默认命名为TTIotBootstrap.yml在自己模块resources目录下添加TTIotBootstrap.yml文件即可TTiot:port: 8726 #端口heartbeatTimeout: 10 #心跳间隔时间netty:bossGroupCount: -1 #-1代表线程数量取决于cpuworkerGroupCount: -1 #-1代表线程数量取决于cpu,此参数决定了netty的worker线程与TTIot内置的核心线程redis: #redis相关项目启动new ServerLauncher().launch();自定义数据源(1) 实现DbHelper接口(2) 添加数据源插件Broker提供默认的redis实现new ServerLauncher().dbHelper(new RedisDbHelper(new RedisSourceProvider())).launch();自定义统一异常处理器(1) 继承ExceptionHandlerAdapter或者实现 Thread.UncaughtExceptionHandler 接口(2) 添加异常处理插件Broker提供默认的ExceptionHandlerAdapter实现new ServerLauncher().exceptionHandler(new ExceptionHandlerDemo()).launch();依赖注入由于Listener是由TTIot接管的在Listener内部系统提供了两种级别的注入方式选择需要注入的对象添加Inject注解即可(1)service 注入Listener(asynchronous true)public class LoginLogListener extends MqttApplicationListener {Injectprivate SessionService sessionService;}(20 dao 注入public class DeviceService{Injectprivate DbHelper dbHelper;}自定义消息处理器TTIot 提供Listener 注解来处理具体的事件信息在Listener里面有两个参数replace 为true时替换该事件的默认处理器为false时对该事件新增一个处理器asynchronous 为true时申明该处理器为一个异步处理器由TTIot内置的线程池进行接管线程池大小由TTiot:netty:bossGroupCount 决定为false时由netty 的EventLoopGroup 接管处理器可以用来实现额外的功能并且跟默认业务解耦例如异步的设备登陆日志Listener(asynchronous true)public class LoginLogListener extends MqttApplicationListener {Overridepublic void onApplicationEvent(MqttConnectEvent mqttConnectEvent) {DbDemo.saveLogin(mqttConnectEvent.getTimestamp(), mqttConnectEvent.getDevName(), mqttConnectEvent.getTenantId());}}无侵入设计如果开发者想自定义事件的默认处理逻辑无需修改源码只需要加上如下注解上即可TTot则会更换默认的处理逻辑开发者也可以利用TTot的事件驱动自定义事件Listener(replace true)事件发布TTIot 提供多种默认的事件供开发者使用给topic推送消息例如Context.me().publishEvent(new MqttPublishTopicEvent(String topic,MqttQoS mqttQoS,byte[] bytes,String tenantId,boolean isRetain);例如给device单独推送消息Context.me().publishEvent(new MqttPublishDevEvent(String clientId, String topic, byte[] byteBuf, MqttQoS qoS,String tenantId);docker-compose首先需要安装git与dockergit clone https://gitee.com/cloudSj/TTIot.gitcd 到项目根目录mvn clean installmvn clean install package -Dmaven.test.skipdocker-compose up -dwebSocket接入TTIOT内置了webSocket协议转换器开发者只需要关注业务逻辑无需关注协议处理、转换层面的相关问题。HTTP接入及设备控制TTIOT目前只接受POST类型的请求格式如下:URI:/mqttHeaders:userName //设备帐号tenantId //租户编号password //设备密码Body:{mqttQos: 1, //消息质量payload: { //消息体rule: chat,content: hello},retain: false, //是否为retain消息topic: /m //推送的话题}HTTP由于协议本身的特性只支持QOS类型为1或2规则路由Ruler如果消息的内容符合{rule: chat,content: hello}消息格式TTIOT将自动触发规则路由器将消息自动投递到与rule值对应的处理器上如Ruler(name chat)public class ChatRuleHandler implements RuleHandler {Overridepublic void handler(MqttPayloadVo mqttPayloadVo) {System.out.println(mqttPayloadVo);}}因此开发者可以自定义业务处理逻辑TTIoT 开源计划docker部署组件HTTP组件以及控制设备HTTPAPI物模型组件网关\集群与分布式扩展组件安卓端组件规则引擎组件(后续将会持续更新)SSL加密传输另外作者诚邀开发人员提交下位机例如PLC/单片机/安卓相关代码如有计划者可以通过邮箱跟作者取得联系联系作者关注公众号:(不定期推送关于IoT的干货以及源码解析)感谢lombok、netty、hutool 提供的工具以及源码参与贡献Fork项目到自己的repoclone到本地修改代码(dev分支)commit后push到自己的库(dev分支)pull request等待作者合并

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建设实业公司网站设计模板设计企业品牌商标

Matlab编程中函数的重命名方法 在进行matlab编程时候,有时需要根据自己的习惯,需要对函数重命名。本文简要介绍重命名的方法。 一、重命名的方法 通过和赋值号实现,如下所示: 新函数名原函数名二、具体举例 clc clear all %将…

怎样构建网站怎么在百度网站上做自己的网站

一、对于string类型变量的连接,可以直接用“”或者“”来进行字符串的直接连接 string a"1"; string b"2"; string c; cab"12"; string操作符两边既可以都是string类型,也可是string与char类型 注意: (1)“”…

借助 Apache Phoenix,使用标准 SQL 和 JDBC 接口来操作 HBase

注:本篇博客是对 https://www.cnblogs.com/shanheyongmu/p/15661006.html 这篇博客的补充与实践。 在此膜拜大佬!d(゚∀゚d)点赞!点击查看代码package com.example;import org.springframework.web.bind.annotatio…

LeetCode:15.转轮数组 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

sem网络营销重庆seo研究中心

来源:知乎(zibuyu9)作者:韩旭、高天宇、刘知远最近几年深度学习引发的人工智能浪潮席卷全球,在互联网普及带来的海量数据资源和摩尔定律支配下飞速提升的算力资源双重加持下,深度学习深入影响了自然语言处理…

长春做网站长春网站设计浙江省龙泉市建设局网站

目录 一、UART 概述二、UART 模块相关API三、UART 接口调用实例四、UART HDF驱动开发4.1、开发步骤(待续...) 坚持就有收获 一、UART 概述 UART 是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)的缩写,是通用串行数据总…

专业建设网站技术wordpress数据迁移

文章目录 &#x1f56e;原始图像&#x1f56e;改变图像大小&#x1f56e;使图像靠左 在 jupyter notebook中&#xff0c;导入的图片过大&#xff0c;想要改变图像的大小 &#x1f56e;原始图像 &#x1f56e;改变图像大小 复制小括号里面的内容到src后面&#xff0c;满足<…

东莞购物网站建设工商注册是什么意思

最近看了个HS的时间显示的例子&#xff0c;顺便学习了一下这个lua定义函数的方法&#xff0c;被折腾了许久&#xff0c;最后竟然是gpt解答了。 定义方式 -- 定义一个对象 local myObject {isVisible false, }-- 定义对象的方法 function myObject:toggleShow()self.isVisibl…

珠宝首饰网站建设策划书公司建品牌网站好

观察题目我们发现从前往后推会有条件判断&#xff0c;不容易写出来。所以就从后往前推。 也就是说后面的状态已经是推出来了&#xff0c;保证是最大值。 //数字三角形 #include<iostream> using namespace std; const int N 510; int f[N][N], n;int main() {ios::sync…

汝城网站建设公司东海县建网站

软件的特征 抽象&#xff1a; 不可触摸&#xff0c;逻辑实体&#xff0c;可记录&#xff0c;但看不到复制成本低&#xff1a;不受物质材料的限制&#xff0c;不受物理定律或加工过程的制约&#xff0c;与开发成本相比&#xff0c;复制成本很低无折旧、受硬件制约、未完全摆脱手…

深圳坪山住房和建设局网站如何做网页快捷方式

Check Point Sofrware Technologies很可能成为下一个会产生收购案的主流安全厂商&#xff0c;首席执行官Gil Shwed在该公司第二季度财报电话会议上这样表示。 “我们正在积极地寻求收购目标&#xff0c;期待无论是大规模的还是小规模的扩张&#xff0c;”Shwed表示。“我们在并…

行业门户型网站制作临沂城乡建设管理局网站

1.73. 矩阵置零 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 提示&#xff1a; m matrix.lengthn matrix[0].length1 < m, n < 200-2^31 < matrix[i][j] < 2^31 - 1 思路&#xf…

手机网站网站建设雅安交通建设集团网站

当研究oracle的查找方式中发现&#xff0c;在全表扫描和索引扫描时&#xff0c;会用到db_file_multiblock_read_count来一次读取多个IO。也看了一些关于db_file_multiblock_read_count的文章&#xff0c;为加深自己的理解&#xff0c;特做个试验研究。 以下是reference对它的解…

做网站的标准流程视觉设计师作品集

文章目录1、static存在的主要意义2、static的独特之处3、static应用场景4、静态变量和实例变量的概念5、静态变量和实例变量区别【重点常用】6、访问静态变量和实例变量的两种方式7、static静态方法8、static静态代码块9、static变量与普通变量区别10、静态内部类11、静态导包1…

网站开发工程师面试问哪些问题南京做网站南京乐识赞

爬虫项目实战0x01 目标分析最近发现一个比较好的欧美音乐下载网站&#xff0c;可以下载大部分高质量欧美音乐。该爬虫项目要实现自动化批量获取用户想要下载的音乐。本文从网站分析、爬虫设计、代码实现三个方面出发&#xff0c;系统介绍该爬虫项目。项目完整代码在Github中可以…

网站建设博客作业动漫制作专业就业方向和前景

CentOS6.5安装详细教程1、准备好CentOS-6.5.iso文件&#xff0c;并刻录到光盘中&#xff0c;放入光驱&#xff0c;重启服务器&#xff0c;修改BIOS为光驱启动&#xff0c;之后开始进入安装&#xff1a;2、按任意键&#xff0c;进入引导菜单。按上下键&#xff0c;移动光标&…

外贸推广建站公司百度网站推广服务商

一、前言 本文使用的虚幻引擎5.3.2&#xff0c;继点击场景3D物体的两种处理方式的基础完成对3D物体的点击触发后&#xff0c;我们需要制作一个可以弹窗显示该物体信息的UI面板&#xff0c;同时保证弹窗可以跟随物体。另外还讲了一种UI上的悬浮提示跟随弹窗。 二、实现 2.1、创…

网站开发的学习方法室内设计效果图qq群

文章目录1. 题目2. DFS 解题1. 题目 给定一个有 N 个结点的二叉树的根结点 root&#xff0c;树中的每个结点上都对应有 node.val 枚硬币&#xff0c;并且总共有 N 枚硬币。 在一次移动中&#xff0c;我们可以选择两个相邻的结点&#xff0c;然后将一枚硬币从其中一个结点移动…

四川建设工程网站新市区做网站

在你连接到 MySQL 数据库后&#xff0c;可能有多个可以操作的数据库&#xff0c;所以你需要选择你要操作的数据库。 从命令提示窗口中选择 MySQL 数据库 在 mysql> 提示窗口中可以很简单的选择特定的数据库。 在 MySQL 中&#xff0c;要选择要使用的数据库&#xff0c;可…

Android 中获取稳定时间的方法 - 指南

Android 中获取稳定时间的方法 - 指南2025-09-22 20:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…