[发明专利]一种以异步方式进行远程过程调用的方法及装置有效
申请号: | 201710524036.3 | 申请日: | 2017-06-30 |
公开(公告)号: | CN107402826B | 公开(公告)日: | 2018-09-21 |
发明(设计)人: | 杨亮;陈少杰;张文明 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 异步 方式 进行 远程 过程 调用 方法 装置 | ||
本发明公开了一种以异步方式进行远程过程调用的方法,包括:在调用远程过程时,创建与所述远程过程对应的回调函数;将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;向所述远程过程的调用端返回一虚拟应答结果,以使得所述调用端对应的线程处于唤醒状态;在接收到所述被调用端返回的真实应答结果时,通过所述回调函数将所述真实应答结果返回给所述调用端。本发明实现了在进行远程过程调用时,在没有收到应答结果之前,程序的界面不会出现假死状态,提高了用户体验的技术效果。同时,本发明还公开了一种以异步方式进行远程过程调用的装置。
技术领域
本发明涉及网络直播技术领域,尤其涉及一种以异步方式进行远程过程调用的方法及装置。
背景技术
随着网络通信技术的进步和宽带网络的提速,网络直播得到了越来越多的发展和应用。在网络直播过程中,经常会进行远程过程调用。
所谓远程过程调用,就是一个进程调用另外一个进程所提供的方法,但是在调用者的角度仍然跟调用本进程的函数是一致的。在远程过程调用中,将要提供给被调用者进程的所有参数序列化为一个网络消息,然后通过网络传输发送到被调用者进程中。被调用者处理完成相应的服务后,将产生的结果也序列化成一个网络消息,发送到调用者进程。而在这个过程中,当调用者调用一个远程过程到收到结果之前,通常都是阻塞的;也就是在收到来自被调用者的应答结果之前,调用者调用一个远程过程之后,一直阻塞住,直到收到应答结果才会被唤醒。
但是,在程序的主线程中调用远程过程时,在没有收到应答结果之前,程序的界面将会出现假死状态,用户的任何鼠标点击操作都不会被响应,极大的影响用户体验。
发明内容
本申请实施例通过提供一种以异步方式进行远程过程调用的方法及装置,解决了现有技术中在进行远程过程调用时,在没有收到应答结果之前,程序的界面将会出现假死状态的技术问题,实现了在进行远程过程调用时,在没有收到应答结果之前,程序的界面不会出现假死状态,提高了用户体验的技术效果。
第一方面,本申请通过本申请的一实施例提供如下技术方案:
一种以异步方式进行远程过程调用的方法,包括:
在调用远程过程时,创建与所述远程过程对应的回调函数;
将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;
向所述远程过程的调用端返回一虚拟应答结果,以使得所述调用端对应的线程处于唤醒状态;
在接收到所述被调用端返回的真实应答结果时,通过所述回调函数将所述真实应答结果返回给所述调用端。
优选地,所述创建与所述远程过程对应的回调函数之后,还包括:
对所述回调函数分配唯一标识符;
将所述回调函数和所述唯一标识符存储在字典Dict中,所述唯一标识符与所述回调函数对应。
优选地,所述将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端,包括:
建立所述调用端和所述被调用端之间的网络连接;
将所述唯一标识符连同所述调用请求一起发给所述被调用端。
优选地,所述在接收到所述被调用端返回的真实应答结果时,通过所述回调函数将所述真实应答结果返回给所述调用端,包括:
在接收到所述真实应答结果时,从所述真实应答结果中提取所述唯一标识符;
基于所述唯一标识符,判断接收到所述真实应答结果的时间是否超时;
若没超时,则基于所述唯一标识符,在所述字典Dict中提取所述回调函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710524036.3/2.html,转载请声明来源钻瓜专利网。