Asp.Net SignalR - 持久串連類

來源:互聯網
上載者:User

標籤:-o   中介軟體   top   stc   ott   href   ref   cat   串連   

持久串連類

通過SignalR持久串連類可以快速的構建一個即時通訊的應用,上篇博文已經我們建立一個owin Startup類和一個持久串連類來完成我們的工作,然後在Startup類的Configuration方法中添加了我們的中介軟體,配置名稱 myconnection1

簡單看一下持久串連類,裡面有四個可供我們重寫的方法,從字面上就可以看出是什麼意思,需要一提的是持久串連類是享元模式的實踐,因為一個用戶端和伺服器的串連過程中只會建立一個對象,後面都不會再建立對象。

在調試視窗也可以看到我們的WriteLine資訊

下面需要說一下兩個參數

request

connectionid

connectionId是一個類似GUID一樣的唯一標識,一個用戶端的串連會有一個這樣的串連Id

Request則是一些瀏覽器發來的報文以及一些其它的資訊

 

下面可以看深入一下持久串連類的源碼,可以看到參數 environment 是一個字典,這是owin的規範

public Task ProcessRequest(IDictionary<string, object> environment)        {            HostContext context = new HostContext(environment);            environment.DisableRequestCompression();            environment.DisableResponseBuffering();            OwinResponse response = new OwinResponse(environment);            response.get_Headers().Set("X-Content-Type-Options", "nosniff");            if (this.Authorize(context.Request))            {                return this.ProcessRequest(context);            }            if ((context.Request.User != null) && context.Request.User.Identity.IsAuthenticated)            {                response.set_StatusCode(0x193);            }            else            {                response.set_StatusCode(0x191);            }            return TaskAsyncHelper.Empty;        }

最後會走到這個方法到達我們的OnConnected事件裡

private Task ProcessStartRequest(HostContext context, string connectionId)        {            return this.OnConnected(context.Request, connectionId).OrEmpty().Then<HostContext>(((Func<HostContext, Task>) (c => SendJsonResponse(c, "{ \"Response\": \"started\" }"))), context).Then<IPerformanceCounterManager>(delegate (IPerformanceCounterManager c) {                c.ConnectionsConnected.Increment();            }, this.Counters);        }

Asp.Net SignalR - 持久串連類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.