O documento apresenta SignalR, uma biblioteca do ASP.NET para comunicação em tempo real entre servidor e clientes. É demonstrado como poucas linhas de código permitem criar aplicações multicliente interativas, como jogos e bate-papos. SignalR permite que o servidor chame métodos no cliente e vice-versa de forma simples.
3. Agenda
O que é SignalR?
Demo!
SignalR no servidor e no cliente
Demo!
Demo!
Demo!
4. O que é SignalR?
Uma camada de abstração para comunicação assíncrona com
ASP.NET
Permite comunicação bi-directional
O cliente pode chamar o servidor (trivial)
O servidor pode chamar métodos do cliente em tempo real
(incrivelmente simples)
5. Instalação via Nuget
1. New Empty Web Application
2. Instalar via Nuget
PM> Install-Package Microsoft.AspNet.SignalR
PM> Install-Package jquery
8. SignalR no servidor e no cliente
Instalação
Modelo de Comunicação
Hub
Callbacks no Cliente
9. Hub
public class ShapeHub : Hub
{
//
// Recebe mensagens do Cliente
//
public void MoveShape(int x, int y)
{
//
// Envia mensagens para o Cliente
//
this.Clients.Others.updateShape(x, y);
}
}
Simples definição do Hub
Implementação dos
métodos
Uso intensivo de Anonymous
Methods
10. Hub no Cliente
<script type="text/javascript">
$(function () {
var shape = $("#shape");
$.connection.hub.start().done(function () {
shape.draggable({
drag: function () {
//
// Envia a nova posição para o servidor
//
$.connection.shapeHub.server.moveShape(
shape.position().left,
shape.position().top);
}
});
});
//
// Recebe as mensagens do servidor
//
$.connection.shapeHub.client.updateShape = function (x, y) {
shape.animate({ left: x, top: y }, { queue: false });
}
});
</script>
Implementação dos
métodos no cliente “.client”
Pode chamar métodos no
servidor “.server”
13. Onde você pode usar?
Apps altamente interativas
Dashboards
Apps multicliente
Comunicação em tempo real entre diferentes dispositivos
IOs
Windows Phone
Desktop
Mobile
Chrome, Opera, Firefox, IE
Jogos
18. Referências
Siga o Damian Edwards
https://twitter.com/damianedwards
ASP.NET
http://asp.net/signalr
SignalR no GitHub
http://gifthub.com/signalr/signalr
Blog 100loop.com
http://100loop.com