本发明涉及打印,更具体的说,它涉及一种针对ios系统的多客户端连接打印系统。
背景技术:
1、苹果ios app在打印中都是采用单对单连接,再进行打印。当有多个app同时发起打印时,只能有一个连接上蓝牙打印机,其他app连接不成功,打印失败。这就使得针对苹果ios系统的商户,在进行相应打印时,都只能默认一台设备进行连接打印,大大影响了商业活动的效率。尤其是对小微企业,没有多余资金请专人进行开发改造,极大影响了他们的生产能力。而目前市场上有的ios系统的蓝牙打印机,当有多个app打印时,需要一个个app打印时通过局域网把打印数据发送给打印机端的打印程序,由打印程序进行排队打印。其对局域网十分依赖,一旦相应ip发生变化后就需要重启打印程序,重新进行相应打印,重新连接重复发送打印信息。并且多个app打印每次都需要重新蓝牙连接,也十分麻烦,用户体验极差。因此急需成本较低,使用方便,可多设备连接打印的系统。
技术实现思路
1、本发明克服了现有技术的不足,提供对打印机要求低、快速进行多客户端打印任务的一种针对ios系统的多客户端连接打印系统。
2、本发明的技术方案如下:
3、一种针对ios系统的多客户端连接打印系统,包括客户端、服务端、打印机,客户端通过蓝牙与打印机连接通信,客户端与服务端通过蓝牙、无线局域网或互联网连接通信;具体打印方式如下:
4、101)初始化配置步骤:先由一个客户端通过蓝牙或通信线方式连接打印机,并将连接获得的打印机连接信息,传输到服务端;
5、102)初步协调判断步骤:服务端对打印事务进行协调,当有客户端需要打印时,服务端根据该客户端发送的心跳机制,判断该客户端是否为主端客户端,如果是则进入主客户端打印步骤,如果为否则进入其他客户端打印步骤;
6、103)主客户端打印步骤:已经连接打印机的客户端直接与打印机通过蓝牙协议发送打印信息,打印机进行打印;
7、104)其他客户端打印步骤:服务端对打印事务进行协调,当有客户端需要打印时,进一步判断所有打印机是否都有主端客户端;如果为是,则将打印事务放入打印队列;如果为否,则由服务端反馈可打印信息给发起打印的客户端,该客户端连接打印机,并通过蓝牙协议发送打印事务的打印信息,打印机进行打印;
8、105)打印队列处理步骤:根据步骤104)中如果为是,继续判断若打印机空闲,则将需打印信息传输给对应打印机的主端客户端进行连接打印,若打印机未空闲,则将打印信息放入打印队列中的待打印队列,待打印机空闲后进行相应打印。
9、进一步的,打印机连接信息包括打印机mac信息、时间信息、状态信息。
10、进一步的,步骤101)中打印机数量至少一个,所有打印机都与客户端连接,将打印机连接信息都传输到服务端。
11、进一步的,步骤104)的如果为否中,发起打印的客户端打印时,通过心跳机制还发出相应通知给服务端,即告知服务端相应的打印机有了主端客户端,且该主端客户端即为本客户端。
12、进一步的,其中,客户端与服务端之间通过心跳机制进行连接通讯,客户端定时向服务端发送相应与打印机之间的连接信息。
13、进一步的,心跳机制包括发送心跳包和响应心跳包;
14、发送心跳包中的信息包括{
15、"id":"客户端唯一标识",
16、"timestamp":"时间戳",
17、"printer":"打印机唯一码",
18、"type":"类别:0表示辅端,1表示主端",
19、"flag":"状态:0表示忙,1表示空闲;type=0时忽略"};
20、响应心跳包中的信息包括{
21、"id":"原样返回请求的客户端唯一标识",
22、"timestamp":"原样返回请求的时间戳",
23、"printer":"原样返回请求的打印机唯一码",
24、"type":"原样返回请求的类别:0表示辅端,1表示主端",
25、"ack":"响应:1表示正常",
26、"task":"任务状态:0表示无任务,1表示有任务",
27、"token":"后续拉取任务时用的标识,使用一次后失效"}。
28、进一步的,服务端的打印队列包括至少两个队列,一为打印程序的处理中队列,二为待打印队列;与打印机连接的客户端向服务端取打印任务时,先统一进入服务端待打印队列,通过算法判断是否为之前同一个打印任务,从而进行排重;排重后,任务将进入处理中队列,客户端打印完后通知服务端,服务端将该任务从处理中队列移除,否则超时后重新进入待打印队列。
29、本发明相比现有技术优点在于:
30、本发明由服务端进行协调,便于打印,通过双列表方式,实现了避免重复打印、漏打印的情况。客户端也可以实现远程打印,打印速度得到有效提升。主客户端和打印机(即蓝牙打印机)维持长连接,省去了每次打印时蓝牙连接的时间;打印时会将相应打印信息提交到服务端打印队列,不阻塞用户操作,打印机空闲时取待打印队列中下一个打印任务。
1.一种针对ios系统的多客户端连接打印方法,其特征在于:包括客户端、服务端、打印机,客户端通过蓝牙与打印机连接通信,客户端与服务端通过蓝牙、无线局域网或互联网连接通信;具体打印方式如下:
2.根据权利要求1所述的一种针对ios系统的多客户端连接打印方法,其特征在于:打印机连接信息包括打印机mac信息、时间信息、状态信息。
3.根据权利要求1所述的一种针对ios系统的多客户端连接打印方法,其特征在于:步骤101)中打印机数量至少一个,所有打印机都与客户端连接,将打印机连接信息都传输到服务端。
4.根据权利要求1所述的一种针对ios系统的多客户端连接打印方法,其特征在于:步骤104)的如果为否中,发起打印的客户端打印时,通过心跳机制还发出相应通知给服务端,即告知服务端相应的打印机有了主端客户端,且该主端客户端即为本客户端。
5.根据权利要求1所述的一种针对ios系统的多客户端连接打印方法,其特征在于:其中,客户端与服务端之间通过心跳机制进行连接通讯,客户端定时向服务端发送相应与打印机之间的连接信息。
6.根据权利要求1所述的一种针对ios系统的多客户端连接打印方法,其特征在于:服务端的打印队列包括至少两个队列,一为打印程序的处理中队列,二为待打印队列;与打印机连接的客户端向服务端取打印任务时,先统一进入服务端待打印队列,通过算法判断是否为之前同一个打印任务,从而进行排重;排重后,任务将进入处理中队列,客户端打印完后通知服务端,服务端将该任务从处理中队列移除,否则超时后重新进入待打印队列。