1.一种通信方式的优化方法,其特征在于,所述方法包括:在Mach微内核中注册一虚拟服务名称,并创建微内核的监控接口;
基于多个客户端的获取请求,将所述监控接口发送给多个客户端,使得所述多个客户端基于所述监控接口发送各自的连接请求给所述监控接口;
接收所述多个客户端发送的各自的连接请求;
利用微内核信息服务器的线程为每个连接请求对应创建微内核消息会话实例,并生成各微内核消息会话实例的连接应答消息发送给各连接请求对应的客户端;
检测所述各微内核消息会话实例是否有效,然后删除无效的微内核消息会话实例;
所述利用微内核信息服务器的线程为每个连接请求对应创建微内核消息会话实例,具体包括:
通过调用微内核信息服务器的allocSession函数,为各连接请求创建各自的一个MachMessageSession会话实例;
调用MachMessageSession的createFrom方法来初始化该各MachMessageSession会话实例,使各MachMessageSession会话实例包含有两个参数:对应的客户端的端口名,本地端口名;
所述生成各微内核消息会话实例的连接应答消息发送给各连接请求对应的客户端,包括:
将各MachMessageSession会话实例的本地端口名封装到各自的连接应答消息中,并发送给对应的客户端的端口。
2.如权利要求1所述的方法,其特征在于,所述注册一虚拟服务名称,并创建微内核Mach的监控接口,包括:
调用OSX系统的bootstrap_check_in函数,将虚拟服务名称对应的字符串注册到OSX系统中,并获取到所述监控接口。
3.如权利要求1所述的方法,其特征在于,所述接收所述多个客户端发送的各自的连接请求,具体包括:
利用微内核信息服务器的线程调用mach_msg系统函数接收来自各客户端的连接请求,其中各客户端的连接请求中携带有各客户端的端口名。
4.如权利要求1所述的方法,其特征在于,所述生成各微内核消息会话实例的连接应答消息发送给对应的客户端之后,所述方法还包括:将各MachMessageSession会话实例放入到m_sessions列表中进行管理;
在recvSessionMsg函数中对m_sessions列表中的所有MachMessageSession进行读取操作,以获取对应的客户端发送的通信消息。
5.如权利要求1所述的方法,其特征在于,所述检测所述各微内核消息会话实例是否有效,然后删除无效的微内核消息会话实例,具体包括:调用mach_port_type函数获取远程端口m_remotePort的类型type,如果type的值等于MACH_PORT_TYPE_DEAD_NAME那么表示该远程端口在其对应的客户端中已经被关闭,则对应的MachMessageSession会话实例已经无效;然后将无效的MachMessageSession会话实例删除。
6.一种电子设备,其特征在于,包括:注册模块,用于在Mach微内核中注册一虚拟服务名称,并创建微内核的监控接口;
发送模块,用于基于多个客户端的获取请求,将所述监控接口发送给多个客户端,使得所述多个客户端基于所述监控接口发送各自的连接请求给所述监控接口;
接收模块,用于接收所述多个客户端发送的各自的连接请求;
创建模块,用于利用微内核信息服务器的线程为每个连接请求对应创建微内核消息会话实例,并生成各微内核消息会话实例的连接应答消息发送给各连接请求对应的客户端;
检测模块,用于检测所述各微内核消息会话实例是否有效,然后删除无效的微内核消息会话实例;
所述利用微内核信息服务器的线程为每个连接请求对应创建微内核消息会话实例,具体包括:
通过调用微内核信息服务器的allocSession函数,为各连接请求创建各自的一个MachMessageSession会话实例;
调用MachMessageSession的createFrom方法来初始化该各MachMessageSession会话实例,使各MachMessageSession会话实例包含有两个参数:对应的客户端的端口名,本地端口名;
所述生成各微内核消息会话实例的连接应答消息发送给各连接请求对应的客户端,包括:
将各MachMessageSession会话实例的本地端口名封装到各自的连接应答消息中,并发送给对应的客户端的端口。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1‑5任一项所述方法的步骤。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1‑5任一项所述方法的步骤。