Speciale Web Real Time: tra WebSockets e SignalR

di Daniele Bochicchio, in Primo piano,

Un mese di contenuti speciali, alla scoperta delle ultime tecniche per creare applicazioni web in real time!

Fino a poco tempo fa era normale pensare al web e a come fosse impensabile, per questo mezzo, il real time: il protocollo HTTP, infatti, prevede un semplice meccanismo per cui è sempre il client a dover richiedere al server le informazioni, che le fornisce in maniera sincrona. Nell'arco degli anni si sono sviluppate diverse tecniche per ovviare a questo problema: parliamo di long polling, server sent events e, recentemente, di WebSockets.

Long polling e server sent events

Con long polling e server sent events viene mantenuta aperta la connessione e viene scritto all'interno del buffer, così che sia possibile notificare il client in maniera più rapida: non si tratta di un vero real time, ma il trucco è di tenere sempre aperto il canale, chiudendo la connessione ad intervalli, perché la risposta, come detto, deve sempre essere sincrona e produrre un risultato. Questa tecnica ha il vantaggio che, di fatto, è supportata anche da browser molto vecchi (soprattutto nel caso di long polling), perché sfrutta il classico XMLHttpRequest, alla base di AJAX, e supportato praticamente da tutti i browser.

WebSockets

WebSockets, invece, è una specifica molto più interessante, perché è introdotta di recente con l'obiettivo di superare questi probemi: rappresenta un socket full-duplex, quindi biderezionale, sempre attivo tra client e server, a bassa latenza. In parole povere, è anche il server a poter mandare informazioni al client e lo fa davvero in real time. Lo scotto da pagare, in tal senso, è che il supporto è disponibile con le ultime versioni dei browser: nel caso di IE dalla versioni 10 in poi, Safari dalla 6, Chrome dalla 14, FireFox dalla 8 e Opera dalla 12.1.

Le specifiche che sono disponibili attualmente, pur non definitive, sono stabili da molti mesi e consentono di sviluppare applicazioni che ne traggano beneficio.

Oltre al client, occorre che anche il server web sia in grado di supportare questo nuovo protocollo. Nel caso di Windows è necessario IIS 8, che è disponibile con Windows Server 2012 e Windows 8: ci sono implementazioni alternative, che funzionano su versioni precedenti di IIS, ma non sono integrate nativamente e non offrono gli stessi vantaggi.

Dato che queste specifiche non sono supportate universalmente, nel corso di questo speciale daremo un'occhiata anche a tecniche in grado di supportare comunque browser non recenti. In particolare, per quanto riguarda ASP.NET, analizzeremo SignalR, un framework che semplifica queste problematiche, essendo in grado di utilizzare WebSockets, long polling e server sent events in maniera automatica, in base a quello che è supportato effettivamente dal client, aumentando la nostra produttività e semplificandoci la vita.

I contenuti di questo speciale

Per coprire tutti gli aspetti legati a questi ambiti, nel corso delle prossime settimane copriremo questi argomenti su ASPItalia.com, HTML5Italia.com e WinFXItalia.com, parlando di come sfruttare queste tecniche, rispettivamente, lato server, lato client e con Windows Azure.

Lo speciale è curato da Daniele Bochicchio, Cristian Civera, Andrea Colaci, Marco De Sanctis e Moreno Gentili.

    Per ricevere una notifica automatica alla pubblicazione dei contenuti, puoi iscriverti alle liste unoscript@lgiorno e nuoviarticoli, oppure seguire l'apposito feed con i nostri contributi RSS. Puoi seguirci anche su Twitter, Facebook e LinkedIn.

    Commenti

    Visualizza/aggiungi commenti

    | Condividi su: Twitter, Facebook, LinkedIn

    Per inserire un commento, devi avere un account.

    Fai il login e torna a questa pagina, oppure registrati alla nostra community.

    Approfondimenti