真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

.Net使用SignalR實(shí)現(xiàn)消息推送功能預(yù)研及Demo

所需環(huán)境:SignalR運(yùn)行在.NET 4.5平臺上,這里演示時采用ASP.NET MVC 3;

臨猗網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),臨猗網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為臨猗1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的臨猗做網(wǎng)站的公司定做!

一.簡介

ASP .NET SignalR 是一個ASP .NET 下的類庫,可以在ASP .NET 的Web項(xiàng)目中實(shí)現(xiàn)實(shí)時通信。

二.原理

其實(shí)現(xiàn)原理跟WCF或Remoting相似,均為使用遠(yuǎn)程代理來實(shí)現(xiàn)。實(shí)現(xiàn)接口有2種分別是PersistentConnection 和 Hubs,其中PersistentConnection 是實(shí)現(xiàn)長時間js輪循的,Hub是用來解決實(shí)時信息交換問題,其利用js動態(tài)載入方法實(shí)現(xiàn),客戶端與服務(wù)器端全部使用json來交換數(shù)據(jù)。

三.Demo創(chuàng)建

1.打開NuGet 安裝 Microsoft ASP.NET SignalR

.Net使用SignalR實(shí)現(xiàn)消息推送功能預(yù)研及Demo

  2.實(shí)現(xiàn)

a).實(shí)現(xiàn)PersistentConnection

添加myconnection.cs文件

namespace MvcApplicationSignalR
{
   public  class myconnection : PersistentConnection
    {
        protected override Task OnReceivedAsync(string clientId, string data)
        {
            // Broadcast data to all clients
            data = string.Format("數(shù)據(jù)是:{0} 時間是:{1}", data, DateTime.Now.ToString());
            //return Connection.Broadcast(data);
            return Send(clientId, data);
        }
    }
}

在Global.asax.cs文件中注冊一下代碼(第3行):

protected void Application_Start()
{
      RouteTable.Routes.MapConnection("echo","echo/{*operation}");
                                                                                                                                                                                               
      AreaRegistration.RegisterAllAreas();
      RegisterGlobalFilters(GlobalFilters.Filters);
      RegisterRoutes(RouteTable.Routes);
}

在前臺頁面中添加如下html代碼:


@ViewBag.Message

執(zhí)行效果如下:

.Net使用SignalR實(shí)現(xiàn)消息推送功能預(yù)研及Demo

可在

protectedoverrideTask OnReceivedAsync(stringclientId, stringdata)

方法中進(jìn)行消息的監(jiān)視。

b).實(shí)現(xiàn)Hubs

新建Chat.cs類,代碼如下:

namespace MvcApplicationSignalR
{
    [HubName("chat")]
    public class Chat : Hub
    {
        public void Send(string clientName, string message)
        {
            Clients.addSomeMessage(clientName, message);
        }
    }
}

前臺模板html代碼如下:


        
        @ViewBag.Title
        
        
        
        
        
        
        
    

后臺代碼如下:

public ActionResult HubChat()
{
    ViewBag.ClientName = "用戶-" + Rnd.Next(1, 9);
    return View();
}

對應(yīng)的視圖代碼為:

@model dynamic
@{
    ViewBag.Title = "title";
}


Hub Chat



消息記錄: (你是:@ViewBag.ClientName):

hubDemo.js所對應(yīng)的內(nèi)容如下:

$(function () {
    var myClientName = $('#Placeholder').val();
    // Proxy created on the fly
    var chat = $.connection.chat;
    // Declare a function on the chat hub so the server can invoke it
    chat.addSomeMessage = function (clientName, message) {
        writeEvent('' + clientName + ' 對大家說: ' + message, 'event-message');
    };
    $("#broadcast").click(function () {
        // Call the chat method on the server
        chat.send(myClientName, $('#msg').val())
                            .done(function () {
                                console.log('Sent message success!');
                            })
                            .fail(function (e) {
                                console.warn(e);
                            });
    });
    // Start the connection
    $.connection.hub.start();
    //A function to write events to the page
    function writeEvent(eventLog, logClass) {
        var now = new Date();
        var nowStr = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
        $('#messages').prepend('
  • ' + nowStr + ' ' + eventLog + '.
  • '); } });

    資源:

    一個很酷的同步操作表格的示例(使用 jTable ):

    http://www.codeproject.com/Articles/315938/Real-time-Asynchronous-Web-Pages-using-jTable-Sign

    組通知示例:

    http://www.codeproject.com/Articles/404662/SignalR-Group-Notifications

    先寫到這里,以后在深度研究


    本文名稱:.Net使用SignalR實(shí)現(xiàn)消息推送功能預(yù)研及Demo
    路徑分享:http://weahome.cn/article/jssceh.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部