什么是远程服务器属性RPC? (远程服务器属性 rpc)

Remote Procedure Call,即远程过程调用,是指允许一个进程调用另一个进程中的过程(或方法)的协议,通常是在一个分布式系统中使用。RPC用于允许分布式系统中的进程之间通信,这些进程可以在同一台计算机上,也可以在不同的计算机上。

远程服务器属性(RPC)是一项功能,允许远程计算机之间的进程之间通信。具体而言,RPC是指一种高级的应用程序界面(API)。应用程序可以使用这个API直接连接到远程计算机上运行的进程并进行通信。

RPC的实现方式:

1.普通C-S(Client-Server)结构RPC

此类程序的实现过程是:客户端应用程序称位置参数并执行调用。RPC运行库将生成一个新的远程过程调用,将其序列化,并使用RPC协议发送它。通过参数传递,服务器程序执行远程方法并返回结果。

2.自由C-S(Client-Server)结构RPC

此类程序的实现方法使用了一个对象远程代理。客户端程序调用本地对象,这些对象转换为远程代理,它们对远程过程调用进行了必要的序列化。代理对象将消息发送到服务器进程,而服务器负责将消息反序列化成实际的远程处理调用。

3.发布-订阅(Publish-Subscribe)结构RPC

这种RPC结构称为Messenger,它具有新的调用方式。这种RPC结构中,每个请求都是一个简单的消息,该消息发送到消息队列中。服务器读取队列,准备消息发放,并将消息推送到一个或多个有资格处理请求的代理上。

RPC的应用领域:

1.分布式系统

分布式系统是指由多个独立计算机组成的计算环境,这些计算机通过网络进行通信和合作,以协同完成共同的任务。RPC是构建分布式系统的基础性技术之一,RPC可以使不同的进程直接进行通信,让分布式系统更加高效。

2.远程过程调用

RPC可以让客户端在不了解远程服务的具体实现细节的情况下调用远程服务。这在开放式网络环境下非常有用,因为客户端不需要知道服务端的具体实现,只需要通过网络发送请求和接收响应即可。

3.消息传递

RPC可以将远程服务转换为消息传递的方式。这是一种非常有用的方法,因为它可以使消息队列类应用变得更加可靠。RPC可以抽象出队列服务,让客户端在不了解远程服务的实现细节的情况下使用队列服务。

RPC的优缺点:

1.优点

远程过程调用使客户端透明地访问远程服务,使分布式计算更加透明。它可以扩展主机,使应用程序运行更快并提高灵活性。由于开发人员不用担心通信机制,因此RPC使开发更加简单易懂。

2.缺点

RPC相对于传统的函数调用存在一些问题。由于RPC涉及到远程过程调用和网络通信,所以其调用速度比较慢。由于RPC需要编写特殊的客户端和服务器端代码,因此它的开发成本相对较高。由于RPC没有提供静态检查,因此其可靠性相对较差。

远程服务器属性RPC是一个重要的技术,它可以使我们构建分布式系统更加容易。RPC可以抽象出消息传递和远程过程调用,并使客户端透明地访问远程服务。但RPC也存在一些缺点,如缺乏静态检查、调用速度较慢等。因此,在使用RPC时,我们需要权衡其利弊,以确定是否使用它。

相关问题拓展阅读:

UE4网络之(二) 远程调用函数(RPC)

所有示例使用第三人称模板创建的项目并带有初始资源StarterContent

Function Replicateion(简称RPC)是在本地调用但在其他机器上远程执行的函数。RPC可以实现客户端或服务器之间相互发送消息。RPC可以设置为Reliable或Unreliable,其中Reliable调用必定发生,而Unreliable调用可能会因为网络问题被丢弃。因此大多处理视觉效果的RPC应该设置为Unreliable来避免过多地占用网络。

RPC主要包括Multicast(广播)、Run On Server(在服务端执行)和Run On Owning Client(在客户端执行)三种类型。其中广播类型在服务器上调用执行,然后自动转发给客户端;在服务端执行的函数有客户端调用,然后仅在服务器执行。在客户端执行的函数由服务器调用,然后仅在自己的客户端上执行。

1、打开ThirdPersonBP/Blueprints中的ThirdPersonCharacter蓝图,添加一个按下空格时铅辩在玩家为之生成火焰特效的事件。蓝图非常简单直接上图。

2、更改Number of Players改为4后运行。

可以看到所有窗口只有自己按下空格时才能生成火焰特效并且只能看到自己的特效。

3、在ThirdPersonCharacter蓝图添加一个MulticasTest事件并槐伏缺将Replicates设置为Multicast,将蓝图改为如图所示。

4、点击Play运行。

看到服务器上生成的特效在所有客户端都能看到,而客户端生成的特效只有自己才能看到。

重复步骤3将Replicates分别改为Run On Server。此处直接上效果图。

此时不论谁按空格键,只有服务器上相应的角色可以生成特效,客户端并不能看到任何效果。如果想要在客户端也能看到效果,我们需要确保特效设置为Replicates。

打开特效蓝图,并选中Replicates选项后重新开始运行。

1、打开ThirdPersonCharacter蓝图,创建一个String类型的变量Inventory并设置为Instance Editable和Replicated

2、添加按P键打印Inventory的事件蓝图。

3、在场景中添加一个Box Trigger

4、取消Rendering下面的Actor Hidden In Game

5、添加蓝图,重叠

触发器

时,如果重叠发生在服务器上,在服务器上运行 Add Item 事件,并将它复制到自己的客户端;当人物退出触发器盒时,在服厅嫌务器上运行 Remove Item 事件,并将其复制到自己的客户端。其中Add Item 和 Remove Item 事件为自定义事件,并且Replicates属性全都为Run on owning Client。

6、编译运行。

可以看出刚开始启动时,每个角色打印的都为空,当一个角色进入触发器后会显示文本Item added ,按P时文本改为”has the item “,人物退出触发器会打印“Item Removed”,再次按P会打印空字符

关于远程服务器属性 rpc的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 什么是远程服务器属性RPC? (远程服务器属性 rpc)