【转】SignalR新手系列教程详解(四)- SignalR连接模式和Hub原理分析

原文地址:https://www.zhidao91.com/signalr-tutorial-four-connections-and-hubs/

在上一篇 SignalR新手系列教程详解(三)- SignalR传输方式判断和配置讲解了怎样判断SignalR传输方式和怎么去配置SignalR传输方式。今天我们讲解一下SignalR 的连接和Hub。

SignalR 连接和Hub

SignalR API 客户端很服务器端通信连接的方式有两种,分别是:持久连接和Hub。

一次连接代表一个发送单个、分组或者广播消息的简单终端。持久连接的API(表现在.NET的PersistentConnection 类上)给了开发人员低价访问SignalR所暴露的通信协议的条件。使用这种连接方式,就像开发人员使用WCF一样。

Hub是一种更高级的管道,它在连接协议上允许客户端和服务器端能够直接调用彼此的方法。SignalR的这种自动分发跨机器边界调度的方法就像施了魔法一样,让客户端调用服务端的方法像调用本地一样简单,反之亦然。使用Hub的模式就像开发人员使用远程API一样,比如 .NET Remoting。使用Hub同样能够让你传递类型化的参数到方法上进行模型绑定。

SignalR Hub 结构流程图分析

下面的图展示了Hub和持久连接的关系,让你对底层的传输技术一目了然。

SignalR Hub 结构流程图分析

SignalR Hub 原理分析

当服务端的代码访问一个客户端的方法时,一个数据包被自动传输,数据包中包含了函数方法参数的名称(如果是一个对象,那么这个对象会被序列化成JSON)。客户端然后根据客户端的代码匹配方法的名称。如果找到相应的匹配方法,那么久调用相应的函数执行反序列化的参数。

方法的调用可以通过Fiddler工具来查看。下面的图片就展示了SignalR 服务器调用客户端代码Fiddler的检测情况。方法是从一个“MoveShapeHub”的Hub类中调用的,调用的方法是“updateShape”。

SignalR Hub 原理分析

在这个例子中,Hub的名称定义为“H”参数,方法名定义为“M”参数,发送的数据定义成“A”参数。

选择一种合适的SignalR连接模式

大多数的应用应该使用Hub API。连接API方式应该运用在下面的情况下:

  • 发送消息的格式需要指定。
  • 开发人员喜欢用消息调用分发模式,而不是远程调用模式。
  • 想移植SignalR到现有的应用上。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值