Windows Communication Foundation–Callbacks [C#]

Hola de nuevo, aquí les vengo a traer nuevo material. Trata de WCF Callbacks.

Que es WCF Callbacks?

Un callback, es un termino muy conocido en programación, al menos yo lo he escuchado seguido. Si has trabajado por ejemplo con javascript y jQuery, sabrás de lo que significan las Callbacks. Una callback es una devolución de llamada, o sea, hay una acción o una llamada a una función inicial que al terminar esa función nos devuelve otra acción. Es como un evento.

Como se observa en la imagen, una llamada a una función del cliente al servicio o servidor, y el servicio llama a una función en el cliente. Esto en WCF son las callbacks.

Se pueden hacer una infinidad de cosas con las funciones callbacks. Imagen dropbox, un cliente desde una computadora sube un archivo (llamada al servidor) y una vez que el archivo se subió, los clientes (en otras computadoras claro) deben descargarlo. El servidor provoca un callback diciendo que se subió un archivo nuevo, se los mandaré a los clientes. Y así todos los clientes comienzan a descargar el archivo que subió un cliente.

Un callback necesita un canal bidireccional, para poder hacer llamadas al servicio y el servicio al cliente. En WCF tenemos distintos bindings que soportan canales bidireccionales, de los que tenemos: wsDualHttpBinding (ideal solo para servidor-servidor) y netTcpBinding (ideal para un cliente detras de NAT y routers).

Es necesario usar TCP para no meternos en problemas con routers y NAT si queremos que un cliente normal se conecte en un canal bidireccional. Http por definición es de un unidireccional pero con wsDualHttpBinding se convierte bidireccional, pero es necesario crear un doble canal (por lo tanto el cliente funcionaria como servidor, es por eso el problema de los routers, NAT, etc).

En fin, comencemos.

Tengo un proyecto recién creado, una aplicación WCF (puede ser con .NET 3.0)

image

 

Continuar leyendo «Windows Communication Foundation–Callbacks [C#]»