苹果让无线打印更加便捷,智能交互

2019-08-31 09:31栏目:技术支撑
TAG:

原标题:苹果让无线打印更加便捷,安卓已羡慕

如果你进来了,点下关注行不行_
在使用这个bonjour协议之前, 先谈谈两个问题?

9月苹果发布会即将到来,除了期待已久的新macbook air与第四代iWatch外,新款的iPhone也将有新的突破。接下来向大家介绍一下iOS的一款功能——AirPrint(隔空打印)。隔空打印可以无损打印输出,并且无需下载或安装驱动程序。

bonjour是什么?##

bonjour是苹果公司发布的一个基于ZEROCONF工作组(IETF下属小组)的工作,用于实现零配置网络联网的解决方案。Bonjour是基于IP层协议的。简单点说,就是 某个组织发明了一套解决方案,这套协议能够不需要 (复杂的配置),即可互相发现彼此的解决方案。

图片 1

为什么要使用它?##

因为如果不用他,就要经过一套(复杂的配置),才能连接设备。简单解释下,此前的配置是怎样复杂法。

连接设备, 首先想到就是 IP, 或者 UDP广播, 另外一边监听,从而连接起来.

1, IP
通过IP连接, 就需要知道双方的IP地址, 端口, 也就是说, 在连接的时候,
查询IP与, 这是一个步骤
输入IP与端口,等待连接, 当然,这两步两端都要做, 然后进行连接,
这用户体验被虐的体无完肤

2,UDP广播
首先, 手机不断发送UDP广播, 硬件设备接收, 然后开始连接
有什么问题?

-> 网络阻塞问题。因为UDP广播会对同一本地网络的所有Host都发送信息。过于密集的发送,有可能会造成网络的堵塞。
-> 而且基于Socket实现,我们还要考虑网络的稳定性,Socket断开与重连等情况。(代码量增大)
-> 由于UDP广播的间隔时间与不稳定性,导致我们获取设备的速度不快和稳定不足。
-> 由于耗电, 影响用户体验, APP整体质量

解决这些问题, 需要大量的代码量,与实现逻辑结构

AirPrint并非是从第一代iPhone开始的,最早在2010年iOS 4.2版本更新的时候才出现。AirPrint在中国大陆官网翻译为“隔空打印”,还是非常传神的。这个功能让iPhone使用者能安定从容地打印手机中的照片或文件,而不需要任何线缆连接。

bonjouze怎么用?##

  1. 寻址(分配IP地址给主机)
  2. 命名(使用名字而不是IP地址来代表主机)
  3. 服务搜索(自动在网络搜索服务)

AirPrint基于无线网络连接,苹果手机通过无线网络在打印机上打印文件。而AirPrint的作用就像是手机和打印机之间的翻译——两者各有自己的一套运行方式,AirPrint将数据转换为对方能听懂的语言,实现打印。

->寻址。##

一个在网络中的设备需要有一个自己的IP。有了IP地址,我们才能基于IP协议进行通信。
实现原理: Bonjour协议的寻址依赖于IP层协议。
对于IPV6标准,IP协议已经包括了自动寻找IP地址的功能。但是目前仍然普遍使用的IPV4 不包含本地链路寻址功能。那么解决方案就是在本地网络选择一个随机的IP地址进行测试,如果已经被占用,则继续挑选另外一个地址。

图片 2

图片 3

-> 命名。##

我们不想通过冷冰冰的IP地址来作为我们服务的标志。我们想为我们的服务取一个名字。就像打印机一样,我们希望能在网络发现它的时候,是以一个比如“二楼的打印机”这样的标志,而不是一串冷冰冰“10.9.166.45”的IP地址。

就像我们希望发现我们的需要调试的iOS设备的时候,能够知道它是“Mango's iPhone7”、因此,我们需要给我们的设备和服务命名。

我们还希望能够通过名字找到服务准确的IP地址,就像在浏览器输入"www.qq.com"一样,DNS服务器会自动帮我导向正确的网站IP地址。

而Bonjour,正是帮我们实现了命名和解析的功能。保证了我们服务的名字在本地网络是唯一的,并且把别人对我们名字的查询指向正确的IP地址和端口。

实现原理:
我们在这里抛开复杂的RFC 6762规范,用简洁的语言介绍一下原理。

指定名字:
用户在注册一个名字的时候,设备向本地网络发送查询来确定名字是否选中。如果用户提供的名字已经被使用,则Bonjour会自动重命名我们的服务。例如我们注册名字为"Mango's iPhone7"已经被使用,那么Bonjour可能会帮我们取"Mango's iPhone7-1"的名字。

图片 4

解析名字 :
如果有用户发出一个查询,说我想找名字叫"Mango's iPhone7"的设备,则本地网络收到请求的设备看看自己是不是被请求了,如果是的话,则返回正确的IP地址,端口。

图片 5

responder :
需要了解的是而Bonjour在系统级别上添加了一个mDNSResponder服务来处理请求和发送回复,从系统级层面上处理,我们就无需在应用内自己监听和返回IP地址,只需到系统内注册服务即可。减少了我们应用的工作量和提高了稳定性。就好像APNS在iOS上帮助我们维持一个系统级别的长连接。

版权声明:本文由奥门新萄京娱乐场发布于技术支撑,转载请注明出处:苹果让无线打印更加便捷,智能交互