Nodemcu+MQTT协议打造智能家居服务器(二)(重点)

==接上次写的话题,转载连接–hjc!984117-----什么是RESTful API—https://blog.csdn.net/hjc1984117/article/details/77334616
哈哈上次说到这里的时候被这个概念混淆了,首先要清楚什么是RESTful就要弄清楚什么是REST—REpresentationan State Transfer,表现层状态转移,
什么是RESTful:URL定位资源,用HTTP动词(GET,POST)描述操作。
Resource:资源,即数据
Representational:某种表现形式,比如用JSON,XML,JPEG等
State Transfer:状态变化。通过HTTP动词实现
在什么场景下使用RESTful API呢在当经的互联网应用的前端展示媒介很丰富。RESTful API就是一套协议来规范多种形式的前端和同一个后台的交互方式。
1.资源(资源就是网络上的一个实体,一段文本,资源总是要通过一种载体来反应它的内容,JSON是最常用的资源表现形式。
2.统一接口(RESTful风格的数据元操作CRUE)分别对应HTTP方法。
3.URL。可以用一个URL(统一资源定位符)指向资源,即每个URL都对应一个特定资源
4.无状态,如查询工资按步骤一步一步来就是有状态的,如果直接输入URL就是无状态的
*****
********更加详细可以参考连接https://blog.csdn.net/intelrain/article/details/80449371
juti具体操作看连接----https://blog.csdn.net/qq_21383435/article/details/80032375
**zuijia最佳实战可以看阮一峰的网络日志—

********************哦叩叩叩,接下来开启一个讨论IO异步同步时什么东西的专题*************同时发信啊了一个可以持续跟踪学习的大神博客1,值得我们花点实间来对里面的东西进行整理归纳-------------------博主:historyasamirror-------------https://blog.csdn.net/historyasamirror/article/details/6159233
boke博客专栏:https://blog.csdn.net/historyasamirror
*******yibu异步机制(Asynchronous)—(一)开篇谈Mina
首先对于Mina是个啥东东有基础的直接看源码-----hujunil-----https://blog.csdn.net/hujunil/article/details/9923381
*******dui对于Apache-mina学习笔记-----https://blog.csdn.net/cgwcgw_/article/details/18402769e额文章有点长以后慢慢看
Mina可以用来开发Java的NIO服务器程序,,学习Apache的框架
Mina(Multipurpose infrastructure Networked Applications)是一个网络应用框架,可以帮助用户开发高性能,高扩张性的网路应用程序,提供了一个抽象的,事件驱动的异步API,使得java NIO在各种传输协议下快速高效开发。
说到这个NIO是什么东西呢----可以参考博客:https://blog.csdn.net/CharJay_Lin/article/details/81810922
阻塞和同步&
阻塞和非阻塞式进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备好时阻塞

非阻塞:当我们的进程访问我们的数据缓冲区的时候,如果数据没有准备好就直接返回,不会等待
2)同步(Synchronization)和异步(Async)的方式:
同步和异步都是基于应用程序私操作系统处理IO事件所采用的方式。同步:应用程序要直接参与IO读写操作,异步:所有的IO读写交给操作系统去处理,应用程序只需要等待通知
同步方法处理IO事件的时候,必须阻塞在某个方法上面等待我们的IO事件完成(阻塞IO事件或者通过轮询IO事件的方式)。对于异步来说,所有的IO读写都可以交给操作系统,这个时候我们就可以做自己的事情。同步:阻塞到IO事件,让读写方法加入到线程里面,然后阻塞线程来实现,对线程的性能开销比较大。
Java NIO和IO之间的而区别
IO面向流,NIO面向缓冲区。面向流意味着每次从流中读一个或多个字节,直至读取所有字节,他们没有缓存在任何地方,不能前后移动其中的数据。,Java nio就读取到一个缓冲区,但是要检查该缓冲区是否包含你所需处理的数据,并且确保不会覆盖其他数据。
**Java io的各种流是阻塞的,java NIO是非阻塞的。
选择器Selector)Java NIO选择器允许一个单独的线程来监视多个输入通道,你可以注册多个通道使用一个选择器。
NIO中需要掌握的核心对象:缓冲区(Buffer),管道(Channel),选择器。
缓冲区实际上就是一个容器对象,其实就是一个数组,缓冲区类型都继承于抽象类Buffer。
==java nio是在jdk1.4开始使用的,可以说是新的IO,也可以说是非阻塞/O,工作原理
:1.由一个专门的线程来处理所有IO事件,并负责分发
2.事件驱动机制:事件到的时候触发,而不是同步的去监视事件
3.线程通信:线程之间通过wait等方式通信,保证每次切换上下文都是有意义的,减少无谓的线程切换。每个线程的处理流程大该都是读取数据,解码,计算处理,编码,发送响应。
**如果还有疑问可以看更详细的一个大神的连接 努力的土豆 —https://blog.csdn.net/twt936457991/article/details/89668350

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值