Ohjelmointi

Kuinka toimia .Set-verkkosivustojen kanssa

Verkkoliitäntä on TCP-liitäntäyhteys asiakkaan ja palvelimen välillä verkon kautta. Pohjimmiltaan verkkopistoke on kaksisuuntainen kaksisuuntainen tiedonsiirto asiakkaan ja palvelimen välillä verkon kautta. Reaaliaikaisen kysynnän, matalan viiveen verkkoviestinnän, sekä mobiilisovellusten, lisääntyvä kysyntä on johtanut verkkopistorasiaan. Tämä on protokolla, jonka avulla voit tarjota reaaliaikaista, nopeaa, kaksisuuntaista viestintää sovelluksissasi, eikä tarvetta tinkiä käyttökokemuksesta.

WebSockets on viestipohjainen protokolla, joka hyödyntää TCP-suoratoistettua yhteyttä. System.Net.WebSockets-nimitila tarjoaa tukea verkkopistorasioiden käsittelyyn .Net-verkossa. Huomaa, että verkkopistorasiayhteys palvelimen ja asiakassovelluksen välille muodostetaan niiden välisen HTTP-kädenpuristuksen avulla.

MSDN toteaa: "WebSocketsin avulla selaimet voivat avata kaksisuuntaisen, kaksisuuntaisen viestintäkanavan palveluiden kanssa. Kumpikin osapuoli voi sitten käyttää tätä kanavaa lähettämään tietoja välittömästi toisille. Sivustot sosiaalisista verkostoista ja peleistä taloussivustoille voivat nyt tarjota parempia reaaliaikaiset skenaariot, mieluiten käyttämällä samaa merkintää eri selaimissa. "

Voit oppia lisää WebSocket-protokollasta täältä.

Työskentely WebSocketsin kanssa .Netissä

Kun isännöit verkkopistorasioita palvelinpuolella .Net-palvelua käyttämällä, sinulla on muutama vaihtoehto. Voit isännöidä WebSocket-palvelinta perinteisissä ASP.Net- tai ASP.Net-MVC-sovelluksissa. Tätä varten sinun on hyödynnettävä HttpContext.AcceptWebSocketRequest. Sitten sinulla voi olla verkkosovellus asiakkaan puolella, jotta voit muodostaa yhteyden verkkopistorasiaan ja viestiä viestien vaihtamista varten. Voit myös luoda WCF-palvelun, joka käyttää netHttpBinding-palvelua ja hyödyntää CallbackContract-palvelua. Tämän jälkeen voit hyödyntää HttpContext.AcceptWebSocketRequest -ohjelmaa tai jopa hyödyntää WebSocketHandler- tai WebSocketHost-tiedostoja, jotka ovat saatavana osana Microsoft.WebSockets.dll-tiedostoa.

Asiakkaan puolella voit hyödyntää HTML5: n ja jQueryn etuja verkkosivullasi. Voit myös käyttää ClientWebSocket-luokkaa luodaksesi asiakassovelluksen tai jopa WCF-asiakkaan avulla muodostaaksesi yhteyden verkkopistorasiaan.

Huomaa, että HttpContext-objekti (nyt .Net Framework 4.5) sisältää uuden ominaisuuden nimeltä IsWebSocketRequest. Voit hyödyntää tätä HttpContext-objektin ominaisuutta tarkistaaksesi, onko saapuva pyyntö verkkopistorasiapyyntö. Seuraava koodiluettelo näyttää, kuinka voit luoda verkkopistokkeen HttpHandlerilla.

julkisen luokan palvelu: IHttpHandler

   {

public void ProcessRequest (HttpContext-konteksti)

       {

jos (context.IsWebSocketRequest)

context.AcceptWebSocketRequest (ProcessRequestInternal);

muu

context.Response.StatusCode = 400;

       }

public bool on uudelleenkäytettävä

       {

saada

            {

return false;

           }

       }

private async Task ProcessRequestInternal (AspNetWebSocketContext-konteksti)

       {

WebSocket-liitäntä = konteksti.WebSocket;

vaikka (totta)

           {

// Kirjoita koodi tähän käsittelyä varten

           }

       }

   }

Sinun tulisi rekisteröidä Http-käsittelijä sovelluksesi web.config-tiedostoon. Tässä on koodinpätkä, joka osoittaa, miten sinun pitäisi tehdä tämä.

  

    

type = "Web.Handler" />

  

Voit käyttää verkkopistokkeita myös Web-sovellusliittymissä. Muuten, ASP.Net Web API on kevyt kehys, jota käytetään RESTful-palvelujen rakentamiseen, jotka toimivat HTTP: llä. RESTful-palvelut ovat kevyitä, valtiottomia, asiakas-palvelin-pohjaisia, välimuistipalveluja, jotka perustuvat resurssien käsitteeseen. Seuraava koodinpätkä kuvaa, kuinka voit liittää verkkosovittimen Web-sovellusohjaimen menetelmään - huomioi HttpContext.AcceptWebSocketRequest-käyttö yhteyksien hyväksymiseksi ja luomiseksi.

julkisen luokan WebSocketController: ApiController

{

[HttpGet]

public HttpResponseMessage GetMessage ()

       {

if (HttpContext.Current.IsWebSocketRequest)

           {

HttpContext.Current.AcceptWebSocketRequest (ProcessRequestInternal);

           }

palauta uusi HttpResponseMessage (HttpStatusCode.SwitchingProtocols);

       }

private async Task ProcessRequestInternal (AspNetWebSocketContext-konteksti)

          {

// Kirjoita koodi tähän käsittelyä varten

         }

}

Asiakkaan puolella sinun on muodostettava yhteys verkkopistokkeeseen määrittämällä URI, jota käytetään WebSocket-yhteyspyynnön lähettämiseen.

var webSocket = uusi WebSocket ("ws: //" + window.location.hostname +

"/ Web / api / WebSocket");

webSocket.onopen = function () {

$ ("# status"). teksti ("Yhdistetty ...");

               };

Voit myös hyödyntää uutta Microsoft.Web.WebSockets.WebSocketHandler-luokkaa verkkosovittimien toteuttamiseksi nyt. Tämän luokan käyttämiseksi sinun on asennettava Microsoft.WebSockets-paketti NuGet Package Managerin kautta. Vaihtoehtoisesti voit asentaa saman paketin suorittamalla seuraavan komennon NuGet Package Manager -konsolissa.

Asenna paketti Microsoft.WebSockets

Seuraava koodinpätkä osoittaa, kuinka voit laajentaa WebSocketHandler-luokkaa luomaan oman mukautetun käsittelijän.

julkisen luokan WebSocketHandler: WebSocketHandler

   {

yksityinen staattinen WebSocketCollection socketClients = uusi WebSocketCollection ();

public override void OnOpen ()

       {

socketClients.Add (tämä);

socketClients.Broadcast ("Tämä koskee kaikkia kytkettyjä asiakkaita ...");

this.Send ("Hei lähettäjältä:" + this.WebSocketContext.UserHostAddress);

       }

public override void OnClose ()

       {

pohja Sulje ();

       }

public override void OnError ()

       {

base.OnError ();

        }

   }

$config[zx-auto] not found$config[zx-overlay] not found