我刚刚在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)
这两个片段都是从上面引用的链接中获取的.
您可以将Hub视为Asp.NET MVC控制器,以实现客户端(javascript)和服务器(集线器)之间的持久连接.
在客户端和服务器之间发送不同类型的消息和数据的简便方法.
参数和返回值在客户端自动与JSON进行序列化.
集线器具有将客户端添加到组的概念,因此您可以使用AddToGroup和RemoveFromGroup方法创建聊天室功能.这样您就可以向特定组中的所有客户端发送消息.
我真的建议从GitHub下载代码并查看示例.那里有一个Chat-sample房间(团体).