System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及即时通讯,具体涉及一种即时通讯事件处理方法、装置、设备及存储介质。
技术介绍
1、随着企业im(instantmessaging,即时通讯)的发展,一些大型企业的工作人员的数量日益增加,达到万人级别,在工作过程中,其沟通需求也呈线性增长,导致im长连接网关的接收指令也越来越多。而现有技术在im长连接网关的转发能力上存在一些技术壁垒,传统im长连接网关采用的是串行链路处理方式,该处理方式导致网络读写事件与业务处理事件在同一处理通道中排队等待,从而增加了不同事件的处理时间,影响了事件处理效率。
技术实现思路
1、本专利技术提供一种即时通讯事件处理方法、装置、设备及存储介质,用以解决现有技术中事件处理效率较低的技术问题。
2、为了解决上述技术问题,第一方面,本专利技术提供一种即时通讯事件处理方法,该方法包括:
3、使长连接服务端接收客户端发送的包含当前消息指令的消息体;
4、使所述长连接服务端的第一线程池根据所述消息体判断所述当前消息指令是否为业务指令;
5、若所述当前消息指令为业务指令,则通过所述长连接服务端的第二线程池将所述消息体对应的程序可读实体类信息下发至下游业务服务,并进行业务调用同步;
6、待到与所述程序可读实体类信息相对应的业务事件处理完成后,使所述第二线程池将业务事件处理完成结果回写至所述第一线程池中,使所述第一线程池将所述业务事件处理完成结果回写至所述客户端。
7、可选地,在通过所述长
8、相应的,通过所述长连接服务端的第二线程池将所述消息体对应的程序可读实体类信息下发至下游业务服务,并进行业务调用同步,包括,通过所述业务事件处理线程将所述消息体对应的程序可读实体类信息下发至下游业务服务,并进行业务调用同步。
9、可选地,所述使长连接服务端接收客户端发送的包含当前消息指令的消息体,包括:
10、使所述客户端获取用户id标识、业务消息体以及所述当前消息指令,并将所述用户id标识、所述业务消息体以及所述当前消息指令组装成所述消息体;
11、使所述客户端发送所述消息体至所述长连接服务端,使所述长连接服务端接收所述客户端发送的所述消息体。
12、可选地,在将所述用户id标识、所述业务消息体以及所述当前消息指令组装成所述消息体之后,还包括,将所述消息体转化为二进制数组,得到二进制化的消息体;
13、相应的,使所述客户端发送所述消息体至所述长连接服务端,使所述长连接服务端接收客户端发送的所述消息体,包括,使所述客户端发送所述二进制化的消息体至所述长连接服务端,使所述长连接服务端接收客户端发送的所述二进制化的消息体。
14、可选地,使所述长连接服务端的第一线程池根据所述消息体判断所述当前消息指令是否为业务指令,包括:
15、对所述二进制化的消息体进行解包,得到所述程序可读实体类信息,使所述第一线程池根据所述程序可读实体类信息判断所述当前消息指令是否为业务指令。
16、可选地,在所述使长连接服务端接收客户端发送的包含当前消息指令的消息体之前,还包括,使客户端对所述长连接服务端发起连接建立请求,在所述长连接服务端的第三线程池监听到所述建立连接请求后,向所述第一线程池注册消息轮询事件。
17、可选地,所述即时通讯事件处理方法还包括:
18、若所述当前消息指令不为业务指令,则通过所述第一线程池将所述消息体对应的程序可读实体类信息下发至下游业务服务,并进行业务调用同步,待到与所述程序可读实体类信息相对应的业务事件处理完成后,使所述第一线程池将所述业务事件处理完成结果回写至所述客户端。
19、第二方面,本专利技术提供一种即时通讯事件处理装置,包括消息体接收模块、业务指令判断模块、信息下发模块以及结果回写模块;
20、所述消息体接收模块,用于使长连接服务端接收客户端发送的包含当前消息指令的消息体;
21、所述业务指令判断模块,用于使所述长连接服务端的第一线程池根据所述消息体判断所述当前消息指令是否为业务指令;
22、所述信息下发模块,用于在所述当前消息指令为业务指令时,通过所述长连接服务端的第二线程池将所述消息体对应的程序可读实体类信息下发至下游业务服务,并进行业务调用同步;
23、所述结果回写模块,用于待到与所述程序可读实体类信息相对应的业务事件处理完成后,使所述第二线程池将业务事件处理完成结果回写至所述第一线程池中,使所述第一线程池将所述业务事件处理完成结果回写至所述客户端。
24、第三方面,本专利技术提供一种即时通讯事件处理设备,包括存储器和处理器,其中:
25、所述存储器用于存储计算机程序;
26、所述处理器用于读取所述存储器中的程序并执行如上述第一方面提供的即时通讯事件处理方法的步骤。
27、第四方面,本专利技术提供一种计算机可读存储介质,其上存储有可读的计算机程序,该程序被处理器执行时实现如上述第一方面提供的即时通讯事件处理方法的步骤。
28、与现有技术相比,本专利技术提供的一种即时通讯事件处理方法、装置、设备及存储介质,具有以下有益效果:
29、通过使长连接服务端接收客户端发送的包含当前消息指令的消息体;使所述长连接服务端的第一线程池根据所述消息体判断所述当前消息指令是否为业务指令;若所述当前消息指令为业务指令,则通过所述长连接服务端的第二线程池将所述消息体对应的程序可读实体类信息下发至下游业务服务,并进行业务调用同步;待到与所述程序可读实体类信息相对应的业务事件处理完成后,使所述第二线程池将业务事件处理完成结果回写至所述第一线程池中,使所述第一线程池将所述业务事件处理完成结果回写至所述客户端;从而将业务事件分配给第二线程池进行处理,使得第一线程池中的有限的资源不再同步等待业务事件的处理,减少了第一线程池中的处理事件,从而可以提高事件处理效率。
本文档来自技高网...【技术保护点】
1.一种即时通讯事件处理方法,其特征在于,包括:
2.根据权利要求1所述的即时通讯事件处理方法,其特征在于,在通过所述长连接服务端的第二线程池将所述消息体对应的程序可读实体类信息下发至下游业务服务之前,还包括,对所述消息体中的用户id标识以及预设哈希表的大小进行取余运算,根据取余运算结果从所述第二线程池中选取相应的业务事件处理线程;
3.根据权利要求1所述的即时通讯事件处理方法,其特征在于,所述使长连接服务端接收客户端发送的包含当前消息指令的消息体,包括:
4.根据权利要求3所述的即时通讯事件处理方法,其特征在于,在将所述用户id标识、所述业务消息体以及所述当前消息指令组装成所述消息体之后,还包括,将所述消息体转化为二进制数组,得到二进制化的消息体;
5.根据权利要求4所述的即时通讯事件处理方法,其特征在于,使所述长连接服务端的第一线程池根据所述消息体判断所述当前消息指令是否为业务指令,包括:
6.根据权利要求1所述的即时通讯事件处理方法,其特征在于,在所述使长连接服务端接收客户端发送的包含当前消息指令的消息体之前,还包
7.根据权利要求1所述的即时通讯事件处理方法,其特征在于,所述即时通讯事件处理方法还包括:
8.一种即时通讯事件处理装置,其特征在于,包括消息体接收模块、业务指令判断模块、信息下发模块以及结果回写模块;
9.一种即时通讯事件处理设备,其特征在于,包括存储器和处理器,其中:
10.一种计算机可读存储介质,其特征在于,其上存储有可读的计算机程序,该程序被处理器执行时实现如权利要求1~7任一所述的即时通讯事件处理方法的步骤。
...【技术特征摘要】
1.一种即时通讯事件处理方法,其特征在于,包括:
2.根据权利要求1所述的即时通讯事件处理方法,其特征在于,在通过所述长连接服务端的第二线程池将所述消息体对应的程序可读实体类信息下发至下游业务服务之前,还包括,对所述消息体中的用户id标识以及预设哈希表的大小进行取余运算,根据取余运算结果从所述第二线程池中选取相应的业务事件处理线程;
3.根据权利要求1所述的即时通讯事件处理方法,其特征在于,所述使长连接服务端接收客户端发送的包含当前消息指令的消息体,包括:
4.根据权利要求3所述的即时通讯事件处理方法,其特征在于,在将所述用户id标识、所述业务消息体以及所述当前消息指令组装成所述消息体之后,还包括,将所述消息体转化为二进制数组,得到二进制化的消息体;
5.根据权利要求4所述的即时通讯事件处理方法,其特征在于,使所述长连接服务端的第一线程池根据所...
【专利技术属性】
技术研发人员:付思成,
申请(专利权)人:深圳市跨越新科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。