什么在中心

本文关键字:在中心 什么 | 更新日期: 2023-09-27 18:10:37

所以我一直在深入研究SignalR,这是一项非常巧妙的技术,已经成为ASP的一部分。净家庭。我已经学习了一些教程,这些教程解释了如何构建一些整洁的实时应用程序,如股票行情,聊天,仪表板和移动对象。

这些基本教程确实展示了框架背后的一些功能。我正在阅读一些文档,上面显示:

所以本质上你有两个选择来连接你的客户端服务器。但是,在我无意中浏览了所有这些文档后,它指出:

SignalR可以使用连接或集线器;通过绘制连接,它将利用Web套接字。编码到一个原始套接字,但它是高保真和低延迟。但正如我所说,这在支持Web套接字、直接对套接字进行编码方面可能有缺点。

这是有道理的,但接着他描述了Hub是如何工作的。直接在原始套接字上编码。这就是有趣的部分,Hub将应用以下传输方法:

  • 网络套接字
  • 长池
  • 服务器发送事件
  • <
  • 永远帧/gh>

显然Hub是非常整洁的。因为它确定了最佳的运输方法,然后实施该方法来实现目标。

我的问题Hub无论如何都会自动选择最佳传输方法时,为什么要直接对套接字进行编码?包括Web套接字?

澄清一下就好了。我不太明白为什么不使用Hub ?为什么要用Connection呢?

什么在中心

Patrick Fletcher在SignalR简介:连接和集线器中解释了为什么你可能想要使用集线器上的连接。在所有其他情况下,您都应该使用Hubs,因为它们为您提供了许多附加功能。他是这样写的:

连接与集线器

SignalR API包含两个用于客户端和服务器之间通信的模型:Connection和Hub。

Connection表示用于发送单个接收者、分组或广播消息的简单端点。Connection API(在。net代码中由PersistentConnection类表示)使开发人员可以直接访问SignalR公开的低级通信网络。对于使用过基于连接的api(如Windows communication Foundation)的开发人员来说,使用Connections通信模型是很熟悉的。

Hub是建立在Connection API之上的更高级的管道,它允许您的客户端和服务器直接相互调用方法。SignalR处理跨机器边界的调度,就像变魔术一样,允许客户端像调用本地方法一样轻松地调用服务器上的方法,反之亦然。如果您的应用程序使用不同类型的消息,建议您使用Hub类,这样您就不必创建自己的调度;使用Hub,您可以调用客户机上的方法,而不是发送需要接收、解释和执行的显式消息。对于使用过。net Remoting等远程调用api的开发人员来说,使用Hubs通信模型应该很熟悉。

选择通信模式

大多数应用程序应该使用Hubs API。连接API可以在以下情况下使用:

  • 需要控制发送的消息的格式。
  • 开发人员更喜欢使用消息传递和调度模型,而不是远程调用模型。
  • 使用消息模型的现有应用程序正在被移植到使用SignalR。