SignalR的简单使用

   在学习Comet技术的时候,发现有SiganlR的类库使用起来不错,而且使用起来也特别方便,没用什么特别复杂的配置和编码。
    SignalR的代码分为服务器端的后台代码和前端的js代码。
对于服务器端,需要建立一个SignalR的文件夹,然后里面添加相应消息处理类,这些类必须继承Hub类,同时需要设置该类的HubName属性(客户引用属性名字动态js代码)

    [HubName("messageHub")]
    public class MessageHub : Hub
    {
        public void Send(string message)
        {
            this.Clients.addMessage(message);
        }
    }
 

    对于客户端,除了引用一些基本的Signal和jquery的辅助js库外,还有一个很重要的引用js,即服务端SignalR文件下面的服务js文件(SignalR会根据上面HubName的属性名字生成一个相应的js文件),这个文件里面相应的对象负责实际的接收和发送数据的工作。

<script src="../../Scripts/jquery.signalR.min.js" type="text/javascript"></script>
<script src="../../Scripts/json2.min.js" type="text/javascript"></script>
<script src="/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        var messageHub = $.connection.messageHub;
        messageHub.addMessage = function (message) {
            $('#ulLog').append('<li>' + message + "</li>")
        };
        $.connection.hub.start();

        $("#btnOK").click(function () {
            var message = document.getElementById("txtInput").value;
            if (message != "") {
                messageHub.send(message);
            }
        });
    });
</script>
    SignalR屏蔽底层comet连接具体细节,系统只需要关注发送接收数据即可,暂时测试SignalR负载能力,可以深入一下。

用例代码见附件


引用

SignalR Github 

SignalR 

用SignalR创建实时永久长连接异步网络应用程序 

ASP.NET MVC 3 Real Time Collaborative Apps with SignalR 

Asynchronous scalable web applications with real-time persistent long-running connections with SignalR 

你可能感兴趣的:(JavaScript,C#)