SignalR中的Hub代表什么?

7

我刚刚在SignalR(https://github.com/SignalR/SignalR)上阅读了一些内容,但我没有很清楚地了解它是什么。它是类似于聊天中的群组还是其他什么东西?

4个回答

14
我没有使用过它,但基本上它是用于在客户端(javascript、silverlight、.NET)和ASP.NET之间进行“实时”通信的技术。目前有三种“实时”通信方法(比如聊天应用程序):轮询、长轮询和HTML5 WebSockets。SignalR添加了一个抽象层,并根据浏览器支持和上下文利用这三种方法。这里是一篇描述这三种方法(以及SignalR如何帮助)的文章: http://blog.maartenballiauw.be/post/2011/11/29/Techniques-for-real-time-client-server-communication.aspx 而这里是Hanselman的一篇文章(和一个可运行的演示!),介绍如何使用它: http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx 还有另一篇: http://jordanwallwork.co.uk/2011/10/signalr/ 一个 Hub 是用于通信的类。在 Javascript 中,你可以像这样使用一个 hub:
$(function() {
    var myConnection = $.connection.myHub;
    $.connection.hub.start();
});
在 ASP.NET 中,您可以这样做:
public class Chat : Hub {
    public void Distribute(string message) {
        Clients.receive(Caller.name, message);
    }
}

这两个代码片段都是从上述链接中引用的。


有点难以寻找,但是这个页面的顶部可能会有所帮助:https://github.com/SignalR/SignalR/wiki/Hubs - JohnL

5
你可以将Hubs视为用于客户端(JavaScript)和服务器(hub)之间的持久连接的Asp.NET MVC控制器。
它是在客户端和服务器之间发送不同类型消息和数据的简单方法。
参数和返回值会在客户端自动序列化和反序列化为JSON格式。
Hubs具有向组添加客户端的概念,因此您可以使用AddToGroup和RemoveFromGroup方法创建聊天室功能,以便向特定组中的所有客户端发送消息。
我强烈建议从GitHub下载代码并查看示例。其中包括一个带有房间(组)的聊天示例。

0

Hubs 是 SignalR 的高级 API,允许在 HTTP 上进行实时客户端到服务器和服务器到客户端的 RPC。Hub 支持 1 对多的 RPC,例如:所有客户端、客户端组、仅调用者等。传输方式有以下几种(从好到坏):WebSocket、服务器发送事件、永久帧、长轮询。

参见:https://channel9.msdn.com/Events/Build/2012/3-034


0

我正在研究关于什么是hub的定义,并遇到了这个问题。虽然这里有很多答案,但它们似乎有点过时,因为它们没有完全揭示signalR的潜力。

最近,我借助signalR创建了一个推送通知应用程序。

想象一下发送一个AJAX请求,其中您将数据插入到数据库中。如果您连接到监听器以侦听更改,则可以从服务器向所有连接的用户发送有关特定数据库更改的消息...换句话说,推送通知表明发生了某些事情。

这篇文章提供了一个很好的例子,部分实现了这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接