本发明涉及浏览器长连接,尤其涉及一种浏览器平滑重启的长连接方法、系统、存储介质及计算机设备。
背景技术:
1、长连接是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。
2、现有技术中,浏览器客户端与服务端建立长连接后,在版本更新迭代过程中,当需要加载新的代码程序时,长连接服务会中断,因为在加载新的代码时,新进程启动时因与旧进程绑定一个端口,从而导致出现端口冲突。此外,还会导致当前长连接通道上的重要数据丢失,进而影响用户体验。
3、综上可知,现有的方法在实际使用上,存在着较多的问题,所以有必要加以改进。
技术实现思路
1、针对上述的缺陷,本发明的目的在于提供一种浏览器平滑重启的长连接方法,系统、存储介质及其计算机设备,能够解决长连接通道在进行客户端与服务端之间进行消息交互时,由于代码更新导致消息中断的技术难题;实现浏览器与客户端之间长连接通信的平滑重启效果。
2、为了实现上述目的,本发明提供一种浏览器平滑重启的长连接方法,包括步骤:
3、检测到浏览器的代码版本更新时,通过代码程序的旧进程启动unixsocket服务;
4、调用fork函数启动相对于所述旧进程更新后的新进程,并将所述新进程连接至所述unixsocket服务;
5、通过所述unixsocket服务将连接信息传输到所述新进程;
6、在所述旧进程上的所述连接信息传输完毕时,关闭所述旧进程。
7、可选的,所述检测到浏览器的代码版本更新时,通过代码程序的旧进程启动unixsocket服务的步骤具体包括:
8、通过代码程序的旧进程监听到hup信号时,启动unixsocket服务。
9、可选的,所述调用fork函数启动相对于所述旧进程更新后的新进程,并将所述新进程连接至所述unixsocket服务的步骤包括:
10、通过fork函数创建相对于所述旧进程更新后的新进程;
11、将所述新进程连接至所述fork函数的父进程的所述unixsocket服务。
12、可选的,所述通过所述unixsocket服务将连接信息传输到所述新进程的步骤具体包括:
13、检测到所述新进程连接至所述unixsocket服务时,停止所述旧进程的信息接收服务;
14、通过所述unixsocket服务将全部的连接信息传输至所述新进程。
15、可选的,所述通过所述unixsocket服务将全部的连接信息传输至所述新进程的步骤具体包括:
16、通过所述unixsocket服务,将所述浏览器预接收的第一连接信息和所述旧进程已接收的第二连接信息传递给所述新进程。
17、可选的,所述通过所述unixsocket服务将全部的连接信息传输至所述新进程的步骤具体包括:
18、通过所述unixsocket服务调用sendmsg函数,以将全部的连接信息传输至所述新进程。
19、可选的,所述通过所述unixsocket服务将连接信息传输到所述新进程的步骤之后,还包括:
20、所述新进程基于recvmsg函数以接收所述连接信息,并恢复所述浏览器的信息连接以接收用户请求。
21、还提供了一种浏览器平滑重启的长连接系统,包括有:
22、服务启动单元,用于检测到浏览器的代码版本更新时,通过代码程序的旧进程启动unixsocket服务;
23、服务连接单元,用于调用fork函数启动相对于所述旧进程更新后的新进程,并将所述新进程连接至所述unixsocket服务;
24、信息传输单元,用于通过所述unixsocket服务将连接信息传输到所述新进程;
25、进程关闭单元,用于在所述旧进程上的所述连接信息传输完毕时,关闭所述旧进程。
26、另外,还提供了一种存储介质和计算机设备,所述存储介质用于存储一种用于执行上述浏览器平滑重启的长连接方法的计算机程序。
27、所述计算机设备包括存储介质、处理器以及存储在所述存储介质上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的浏览器平滑重启的长连接方法。
28、本发明所述的浏览器平滑重启的长连接方法及其系统,当在检测到浏览器的代码版本更新时,通过代码程序的旧进程启动unixsocket服务;进而调用fork函数启动代码更新的新进程,并将所述新进程连接至所述unixsocket服务;再借由unixsocket服务将浏览器的连接信息传输给新进程;当旧进程上的连接信息通过unixsocket服务全部传输给新进程后,关闭该旧进程,从而实现浏览器长连接保持平滑重启的效果。本发明有效解决了长连接通道在进行客户端与服务端之间进行消息交互时,由于代码更新导致消息中断的技术难题。
1.一种浏览器平滑重启的长连接方法,其特征在于,包括步骤:
2.根据权利要求1所述的浏览器平滑重启的长连接方法,其特征在于,所述检测到浏览器的代码版本更新时,通过代码程序的旧进程启动unixsocket服务的步骤具体包括:
3.根据权利要求1所述的浏览器平滑重启的长连接方法,其特征在于,所述调用fork函数启动相对于所述旧进程更新后的新进程,并将所述新进程连接至所述unixsocket服务的步骤包括:
4.根据权利要求1所述的浏览器平滑重启的长连接方法,其特征在于,所述通过所述unixsocket服务将连接信息传输到所述新进程的步骤具体包括:
5.根据权利要求4所述的浏览器平滑重启的长连接方法,其特征在于,所述通过所述unixsocket服务将全部的连接信息传输至所述新进程的步骤具体包括:
6.根据权利要求4所述的浏览器平滑重启的长连接方法,其特征在于,所述通过所述unixsocket服务将全部的连接信息传输至所述新进程的步骤具体包括:
7.根据权利要求6所述的浏览器平滑重启的长连接方法,其特征在于,所述通过所述unixsocket服务将连接信息传输到所述新进程的步骤之后,还包括:
8.一种浏览器平滑重启的长连接系统,其特征在于,包括有:
9.一种存储介质,其特征在于,用于存储一种用于执行权利要求1~7中任意一种所述浏览器平滑重启的长连接方法的计算机程序。
10.一种计算机设备,包括存储介质、处理器以及存储在所述存储介质上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~7任一项所述浏览器平滑重启的长连接方法。