Hub在SignalR中代表什么

Roc*_*ngh 5 c# signalr

我刚刚在SignalR上阅读了Hubs(https://github.com/SignalR/SignalR),但我无法清楚地知道它是什么.是聊天还是别的什么?

Jim*_*own 14

我没有使用它,但基本上它是用于客户端(javascript,silverlight,.NET)和ASP.NET之间通信的"实时"通信技术.目前有3种"实时"通信方法(思考聊天应用程序):轮询,长轮询和HTML5 WebSockets.SignalR添加了一个抽象层,并根据浏览器支持和上下文利用所有这三种方法.这是一篇描述3种方法(以及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中,您可以使用这样的集线器:

$(function() {
    var myConnection = $.connection.myHub;
    $.connection.hub.start();
});
Run Code Online (Sandbox Code Playgroud)

在ASP.NET中,您执行此操作:

public class Chat : Hub {
    public void Distribute(string message) {
        Clients.receive(Caller.name, message);
    }
}
Run Code Online (Sandbox Code Playgroud)

这两个片段都是从上面引用的链接中获取的.

  • 是啊.但什么是"枢纽"? (9认同)

Mat*_*rla 5

您可以将Hub视为Asp.NET MVC控制器,以实现客户端(javascript)和服务器(集线器)之间的持久连接.

在客户端和服务器之间发送不同类型的消息和数据的简便方法.

参数和返回值在客户端自动与JSON进行序列化.

集线器具有将客户端添加到组的概念,因此您可以使用AddToGroup和RemoveFromGroup方法创建聊天室功能.这样您就可以向特定组中的所有客户端发送消息.

我真的建议从GitHub下载代码并查看示例.那里有一个Chat-sample房间(团体).