集线器(在signalR中使用的一个)和远程过程调用(RPC)之间有什么区别?

时间:2018-07-25 12:12:42

标签: asp.net signalr rpc signalr-hub

  

集线器是一种可以直接调用SignalR(ASP.Net库)中的客户端和服务器端方法的集线器。

  

远程过程调用(RPC),它从服务器代码中调用客户端上定义的JS函数。

所以我的查询是这两者之间有什么区别?

1 个答案:

答案 0 :(得分:0)

您想将苹果与桔子进行比较

什么是信号中心:

集线器是某些通信层的抽象。您可以从客户端调用集线器上的方法,也可以从服务器调用客户端上的方法。对于集线器内部的内容,您有一个clients属性。

基本上与signalr建立服务器和客户端之间的连接。底层的传输机制(长轮询,服务器发送事件,websockets等)将由signalr选择。建立连接后,您可以在客户端说“在集线器Y上用参数Q调用方法X”。之后,该信号发送器将其发送到服务器。在服务器端,集线器调度程序搜索是否存在名称为Y和方法X的集线器。方法的签名也必须与参数匹配。如果方法匹配,它将被调用。相同的方法也相反。

Rpc(来自维基百科)

  

RPC是一种请求-响应协议。 RPC由客户端启动,   它将请求消息发送到已知的远程服务器以执行   使用提供的参数指定的过程。远程服务器发送   对客户端的响应,然后应用程序继续其过程。   服务器处理呼叫时,客户端被阻止(   等待直到服务器完成处理后再继续   执行),除非客户端将异步请求发送给   服务器,例如XMLHttpRequest。 ....

一个很大的不同是,如果客户端不要求,则无法从服务器向客户端发送数据。