.net signalR 实例

本文介绍如何利用ASP.NET SignalR技术实现Web应用程序中的实时双向通信。通过创建ServerTimeHub类并定义客户端回调方法,可以定时推送服务器时间到客户端。同时,客户端通过JavaScript与Hub进行交互,并显示消息。
1. install signalr for asp.net




2. Add Hub Class :


 public class ServerTimeHub : Hub
    {
        public void PushServerTime()
        {
            Clients.All.addNews(DateTime.Now.ToString());
        }


        /// <summary>
        /// call by client
        /// </summary>
        public void Subscribe()
        {
            var i = 0;
            while (i++ < 10)
            {
                Thread.Sleep(1000);
                PushServerTime();
            }
        }
    }




3. Client Js :


@{
    ViewBag.Title = "Signal R test";
}
<h2>Messages</h2>
<div class="container">
    <ul id="messages"></ul>
</div>
@section scripts {
    <!--Script references. -->
    <!--The jQuery library is required and is referenced by default in _Layout.cshtml. -->
    <!--Reference the SignalR library. -->
    <script src="~/Scripts/jquery.signalR-2.1.2.min.js"></script>
    <!--Reference the autogenerated SignalR hub script. -->
    <script src="~/signalr/hubs"></script>
    <!--SignalR script to update the chat page and send messages.-->
    <script>
        $(function () {
            // Reference the auto-generated proxy for the hub.
            var proxy = $.connection.serverTimeHub;
            // Create a function that the hub can call back to display messages.
            proxy.client.addNews = function (message) {
                // Add the message to the page.
                $('#messages').append('<li>' + htmlEncode(message) + '</li>');
            };


            // Start the connection.
            $.connection.hub.start().done(function () {
                    proxy.server.subscribe();
            });
        });
        // This optional function html-encodes messages for display in the page.
        function htmlEncode(value) {
            var encodedValue = $('<div />').text(value).html();
            return encodedValue;
        }
    </script>
}




4. Start up Add: App.MapSignalR();


 public class Startup
    {
        public void Configuration(IAppBuilder app)
        {


            app.MapSignalR();
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值