分享

asp.net 推模式 用SignalR實現

 姬风 2012-06-13

顯示介面

打開3個這樣的介面,再一個中輸入發送信息,在其他介面中會同時得到數據。

1.下載 SignalR jquery.signalR.js,並且引用。

2.建立MVC工程。

3.在Global.asax中加入註冊項目,註冊連接項目

       protected void Application_Start()
        {
            RouteTable.Routes.MapConnection<myconnection>("echo", "echo/{*operation}");
        }

4.建立myconnection類,繼承PersistentConnection

重寫 ,其中clientId是發送數據的用戶信息,可以指定給特定用戶或者用戶組   

protected override Task OnReceivedAsync(string clientId, string data)
        {
            // Broadcast data to all clients

    //在這裡進行數據處理
            data = string.Format("數據是:{0} 時間是:{1}", data, DateTime.Now.ToString());
            return Connection.Broadcast(data);
        }

代碼如下:

View Code
复制代码
   public  class myconnection : PersistentConnection

    {
        protected override Task OnReceivedAsync(string clientId, string data)
        {
            // Broadcast data to all clients
            data = string.Format("數據是:{0} 時間是:{1}", data, DateTime.Now.ToString());
            return Connection.Broadcast(data);
        }

    }
复制代码

5.在Index.cshtml頁面中進行調用

View Code
复制代码
<script type="text/javascript">
    $(function () {
        var connection = $.connection('echo');

        connection.received(function (data) {
            $('#messages').append('<li>' + data + '</li>');
        });

        connection.start();

        $("#broadcast").click(function () {
            connection.send($('#msg').val());
        });
    });

</script>
复制代码

介面代碼如下:

View Code
复制代码
@{
    ViewBag.Title = "Home Page";
}
<script type="text/javascript">
    $(function () {
        var connection = $.connection('echo');

        connection.received(function (data) {
            $('#messages').append('<li>' + data + '</li>');
        });

        connection.start();

        $("#broadcast").click(function () {
            connection.send($('#msg').val());
        });
        $("#btnStop").click(function () {
            connection.stop();
        });
    });

</script>
<h2>@ViewBag.Message</h2>
<input type="text" id="msg" />
<input type="button" id="broadcast" value="發送" />
<input type="button" id="btnStop" value="停止" />
<ul id="messages">
</ul>
复制代码

可以開始,停止。

var connection = $.connection('echo'); 取得連接

囘調函數:

    connection.received(function (data) {
            $('#messages').append('<li>' + data + '</li>');
        });
開始連接 : connection.start();

停止連接: connection.stop();

源碼下載:http://files.cnblogs.com/Teco/MvcApplicationSignalR.rar

上述代碼:我註釋掉 return Connection.Broadcast(data);

只給自己發送,如果要全部發送,請使用 return Connection.Broadcast(data);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多