SlideShare una empresa de Scribd logo
Consumiendo Datos
Danae Aguilar Guzmán
MCT, MS, MCTS, MCP
danaeaguilar@gmail.com
Contenido del Módulo
 Recibiendo mensajes desde el WebSocket
API de HTML5
 Usando jQuery para llamadas AJAX
 Consumiendo datos JSON y XML
 Obteniendo datos de un servicio Web
 Obteniendo datos usando XMLHTTPRequest
Recibiendo mensajes desde el
WebSocket API de HTML5
 WebSocket es una tecnología de comunicación
full-duplex sobre una conexión basada en TCP.
 Permite al server enviar contenido al browser sin
que el cliente lo solicite.
 Permite una conversación bidireccional mientras
la conexión esta abierta
 El protocolo WebSocket hace fácil la
comunicación en tiempo real
 Los URL de webSocket inician con: ws:// o
wss://
 Configuramos los eventos onopen, onmessage,
onerror, y onclose
Recibiendo mensajes desde el
WebSocket API de HTML5
var wsUri = 'ws://echo.websocket.org/';
var webSocket;
$(document).ready(function () {
if (checkSupported()) {
connect();
$('#btnSend').click(doSend);
}
});
function writeOutput(message) {
var output = $("#divOutput");
output.html(output.html() + '<br />' + message);
}
function checkSupported() {
if (window.WebSocket) {
writeOutput('WebSockets supported!');
return true;
}
else {
writeOutput('WebSockets NOT supported');
$('#btnSend').attr('disabled', 'disabled');
return false;
}
}
Recibiendo mensajes desde el
WebSocket API de HTML5
function connect() {
webSocket = new WebSocket(wsUri);
webSocket.onopen = function (evt) { onOpen(evt) };
webSocket.onclose = function (evt) { onClose(evt) };
webSocket.onmessage = function (evt) { onMessage(evt) };
webSocket.onerror = function (evt) { onError(evt) };
}
function doSend() {
if (webSocket.readyState != webSocket.OPEN) {
writeOutput("NOT OPEN: " + $('#txtMessage').val());
return;
}
writeOutput("SENT: " + $('#txtMessage').val());
webSocket.send($('#txtMessage').val());
}
function onOpen(evt) {
writeOutput("CONNECTED");
}
Implementando AJAX con jQuery
1. Introducción
2. Invocando un servicio Web
3. La función $.ajax()
1. Introducción
 jQuery permite implementar AJAX
mediante llamadas a servicios web.
 jQuery puede llamar a servicios o a
métodos web de la misma pagina.
 Usamos funciones como jQuery.ajax()
 jQuery.ajax() es lo mismo que $.ajax()
2. Invocando un servicio Web
Invocando un servicio Web con $.ajax()
1. Definir el servicio:
[System.Web.Script.Services.ScriptService]
public class EstudiantesService : System.Web.Services.WebService
{
[WebMethod]
public string ObtenerEstudiante(string codigo)
{
return "Juanito Perez";
}
}
2. Invocando un servicio Web
Invocando un servicio Web con $.ajax()
2. Invocar el servicio:
<script type="text/javascript">
$(document).ready(function () {
$("#btnBuscar").click(function () {
var miId = $("#txtId").val();
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json",
url: "EstudiantesService.asmx/ObtenerEstudiante",
data: "{'codigo': '" + miId + "'}",
success: function (data) {
alert("Nombre del Estudiante: " + data.d);
},
error: function () {
alert("Error invocando al servicio web.");
}
});
});
});
</script>
3. La función $.ajax()
Propiedad Descripción
type El tipo de petición o request HTTP, por
ejemplo POST
contentType Indica el tipo MIME de la petición, por
ejemplo JSON.
dataType Indica el tipo MIME de la respuesta, por
ejemplo JSON.
url La dirección url del servicio web, junto con el
nombre del método a invocar.
3. La función $.ajax()
Propiedad Descripción
data Sirve para pasar los parámetros que recibe el
servicio web.
success Indica una función que será ejecutada si la llamada
se ejecuta correctamente.
Los resultados de la llamada AJAX serán pasados a
esta función como el parámetro que nosotros
especificamos en esta función.
por ejemplo: data.d, data.d.NombreDePropiedad
error Permite especificar una función que será invocada si
la llamada AJAX falla.
3. Otras funciones y eventos
• .ajaxSend()
• .ajaxComplete()
• .ajaxError()
• .ajaxSuccess()
• $.get()
• $.post()
Retornando JSON
• Definimos una clase para serializarla
• Podemos usar DataContract y
DataMember
– (importar el assembly
System.Runtime.Serialization)
[DataContract]
class Estudiante
{
[DataMember]
public string Nombre { get; set; }
[DataMember(Name = "edad")]
public int Edad { get; set; }
}
Retornando JSON
• Marcamos el método del servicio con los
atributos WebMethod y ScriptMethod.
• Especificamos que el formato de retorno es
JSON
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string ObtenerEstudiante(string codigo)
{
Retornando JSON
• Serializamos el objeto con
DataContractJsonSerializer
var estudiante = new Estudiante()
{ Nombre = "Pepito", Edad = 10};
var serializer = new
DataContractJsonSerializer(estudiante.GetType());
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, estudiante);
string jsonString = Encoding.Default.
GetString(ms.ToArray());
ms.Close();
return jsonString;
Retornando JSON
• En el lado del script podemos convertir la
cadena en un objeto JavaScript usando eval
o con JSON.parse
var estudiante = eval('(' + data.d+ ')');
Obteniendo datos usando
XMLHTTPRequest
• Principalmente se usa para datos XML
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST",
"EstudiantesService.asmx/HelloWorld",
false);
xmlhttp.send();
var xmlDoc = xmlhttp.responseText;

Más contenido relacionado

La actualidad más candente

Ajax
AjaxAjax
11. Servicios Web Xml
11.  Servicios Web Xml11.  Servicios Web Xml
11. Servicios Web Xmlguest3cf6ff
 
06. Creando un proceso web worker
06. Creando un proceso web worker 06. Creando un proceso web worker
06. Creando un proceso web worker
Danae Aguilar Guzmán
 
10. Usando Datos Xml
10.  Usando Datos Xml10.  Usando Datos Xml
10. Usando Datos Xmlguest3cf6ff
 
Codigo asp aplicacion asignatura
Codigo asp aplicacion asignaturaCodigo asp aplicacion asignatura
Codigo asp aplicacion asignatura
Jose Raul Castillo Rosales
 
Connection
ConnectionConnection
Connection
DIANA TAPIA VERA
 
Conexion mysql y usos
Conexion mysql y usosConexion mysql y usos
Conexion mysql y usos
compunelson
 
Objeto connection
Objeto connectionObjeto connection
Diapositivas de objeto conecction
Diapositivas de objeto conecctionDiapositivas de objeto conecction
Diapositivas de objeto conecction
TAPIA SILVA EVELINA
 
13. Configuracion De Aplicaciones Web Asp.Net
13.  Configuracion De Aplicaciones Web Asp.Net13.  Configuracion De Aplicaciones Web Asp.Net
13. Configuracion De Aplicaciones Web Asp.Netguest3cf6ff
 
Como usar ajax con jquery
Como usar ajax con jqueryComo usar ajax con jquery
Como usar ajax con jquery
iva29234
 
Oledbconnection (clase)
Oledbconnection (clase)Oledbconnection (clase)
Oledbconnection (clase)
Yahaira Fernández Segura
 
Servicios web
Servicios webServicios web
Servicios web
Fernando Solis
 
Conector 2
Conector 2Conector 2
Conector 2
qwz123
 
Connection
ConnectionConnection
Trabajo de software
Trabajo de softwareTrabajo de software
Trabajo de software
Patricia Reyna
 
System.data.oledb
System.data.oledbSystem.data.oledb
System.data.oledb
iberiamerary
 
Taller envio de sms por código 2012
Taller envio de sms por código 2012Taller envio de sms por código 2012
Taller envio de sms por código 2012
Orlando Barcia
 
Manual de Encriptacion con TLS
Manual de Encriptacion con TLSManual de Encriptacion con TLS
Manual de Encriptacion con TLSK-milo Rivera
 
Seguridad en Aplicaciones ASP.NET
Seguridad en Aplicaciones ASP.NETSeguridad en Aplicaciones ASP.NET
Seguridad en Aplicaciones ASP.NET
Kike Salaverria
 

La actualidad más candente (20)

Ajax
AjaxAjax
Ajax
 
11. Servicios Web Xml
11.  Servicios Web Xml11.  Servicios Web Xml
11. Servicios Web Xml
 
06. Creando un proceso web worker
06. Creando un proceso web worker 06. Creando un proceso web worker
06. Creando un proceso web worker
 
10. Usando Datos Xml
10.  Usando Datos Xml10.  Usando Datos Xml
10. Usando Datos Xml
 
Codigo asp aplicacion asignatura
Codigo asp aplicacion asignaturaCodigo asp aplicacion asignatura
Codigo asp aplicacion asignatura
 
Connection
ConnectionConnection
Connection
 
Conexion mysql y usos
Conexion mysql y usosConexion mysql y usos
Conexion mysql y usos
 
Objeto connection
Objeto connectionObjeto connection
Objeto connection
 
Diapositivas de objeto conecction
Diapositivas de objeto conecctionDiapositivas de objeto conecction
Diapositivas de objeto conecction
 
13. Configuracion De Aplicaciones Web Asp.Net
13.  Configuracion De Aplicaciones Web Asp.Net13.  Configuracion De Aplicaciones Web Asp.Net
13. Configuracion De Aplicaciones Web Asp.Net
 
Como usar ajax con jquery
Como usar ajax con jqueryComo usar ajax con jquery
Como usar ajax con jquery
 
Oledbconnection (clase)
Oledbconnection (clase)Oledbconnection (clase)
Oledbconnection (clase)
 
Servicios web
Servicios webServicios web
Servicios web
 
Conector 2
Conector 2Conector 2
Conector 2
 
Connection
ConnectionConnection
Connection
 
Trabajo de software
Trabajo de softwareTrabajo de software
Trabajo de software
 
System.data.oledb
System.data.oledbSystem.data.oledb
System.data.oledb
 
Taller envio de sms por código 2012
Taller envio de sms por código 2012Taller envio de sms por código 2012
Taller envio de sms por código 2012
 
Manual de Encriptacion con TLS
Manual de Encriptacion con TLSManual de Encriptacion con TLS
Manual de Encriptacion con TLS
 
Seguridad en Aplicaciones ASP.NET
Seguridad en Aplicaciones ASP.NETSeguridad en Aplicaciones ASP.NET
Seguridad en Aplicaciones ASP.NET
 

Similar a 10. consumiendo datos

Clase 5 AJAX - Desarrollo de aplicaciones móviles
Clase 5  AJAX - Desarrollo de aplicaciones móvilesClase 5  AJAX - Desarrollo de aplicaciones móviles
Clase 5 AJAX - Desarrollo de aplicaciones móviles
Christian Cabrera
 
Framework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redFramework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redAntonio Palomares Sender
 
Servicios web
Servicios webServicios web
Servicios web
Emilio Sarabia
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
Roberto Allende
 
Real time
Real timeReal time
Real time
ThirdWay
 
Programación web con JSP
Programación web con JSPProgramación web con JSP
Programación web con JSP
ousli07
 
ASP.NET MVC - AJAX
ASP.NET MVC - AJAXASP.NET MVC - AJAX
ASP.NET MVC - AJAX
Danae Aguilar Guzmán
 
SALUDOS EN INGLES
SALUDOS EN INGLESSALUDOS EN INGLES
SALUDOS EN INGLES
ludiviarosa
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
Mauro Gomez Mejia
 
Servicios web
Servicios webServicios web
Servicios web
Alan Flores Gaspar
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
jubacalo
 
Programación web 1er dept
Programación web 1er deptProgramación web 1er dept
Programación web 1er dept
Leonardo Moreno
 

Similar a 10. consumiendo datos (20)

Clase 5 AJAX - Desarrollo de aplicaciones móviles
Clase 5  AJAX - Desarrollo de aplicaciones móvilesClase 5  AJAX - Desarrollo de aplicaciones móviles
Clase 5 AJAX - Desarrollo de aplicaciones móviles
 
Presentacion ajax
Presentacion   ajaxPresentacion   ajax
Presentacion ajax
 
Framework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redFramework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la red
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
Servicios web
Servicios webServicios web
Servicios web
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
 
Real time
Real timeReal time
Real time
 
Programación web con JSP
Programación web con JSPProgramación web con JSP
Programación web con JSP
 
ASP.NET MVC - AJAX
ASP.NET MVC - AJAXASP.NET MVC - AJAX
ASP.NET MVC - AJAX
 
SALUDOS EN INGLES
SALUDOS EN INGLESSALUDOS EN INGLES
SALUDOS EN INGLES
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Servicios web
Servicios webServicios web
Servicios web
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Programación web 1er dept
Programación web 1er deptProgramación web 1er dept
Programación web 1er dept
 
Lab-03-PD2-SOAP
Lab-03-PD2-SOAPLab-03-PD2-SOAP
Lab-03-PD2-SOAP
 

Más de Danae Aguilar Guzmán

Microsoft HoloLens
Microsoft HoloLensMicrosoft HoloLens
Microsoft HoloLens
Danae Aguilar Guzmán
 
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicacionesWPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
Danae Aguilar Guzmán
 
WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralela
Danae Aguilar Guzmán
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datos
Danae Aguilar Guzmán
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimedia
Danae Aguilar Guzmán
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuario
Danae Aguilar Guzmán
 
WPF 05 - triggers y eventos
WPF 05 - triggers y eventosWPF 05 - triggers y eventos
WPF 05 - triggers y eventos
Danae Aguilar Guzmán
 
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
WPF 04 -  reutilizando recursos y estilos en una aplicación WPF WPF 04 -  reutilizando recursos y estilos en una aplicación WPF
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
Danae Aguilar Guzmán
 
WPF 03 - controles WPF
WPF 03 - controles WPF WPF 03 - controles WPF
WPF 03 - controles WPF
Danae Aguilar Guzmán
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuario
Danae Aguilar Guzmán
 
WPF 01 - introducción
WPF 01 -  introducciónWPF 01 -  introducción
WPF 01 - introducción
Danae Aguilar Guzmán
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web api
Danae Aguilar Guzmán
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minification
Danae Aguilar Guzmán
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacion
Danae Aguilar Guzmán
 
ASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estado
Danae Aguilar Guzmán
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
Danae Aguilar Guzmán
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parciales
Danae Aguilar Guzmán
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVC
Danae Aguilar Guzmán
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de software
Danae Aguilar Guzmán
 
09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables
Danae Aguilar Guzmán
 

Más de Danae Aguilar Guzmán (20)

Microsoft HoloLens
Microsoft HoloLensMicrosoft HoloLens
Microsoft HoloLens
 
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicacionesWPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
 
WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralela
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datos
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimedia
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuario
 
WPF 05 - triggers y eventos
WPF 05 - triggers y eventosWPF 05 - triggers y eventos
WPF 05 - triggers y eventos
 
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
WPF 04 -  reutilizando recursos y estilos en una aplicación WPF WPF 04 -  reutilizando recursos y estilos en una aplicación WPF
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
 
WPF 03 - controles WPF
WPF 03 - controles WPF WPF 03 - controles WPF
WPF 03 - controles WPF
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuario
 
WPF 01 - introducción
WPF 01 -  introducciónWPF 01 -  introducción
WPF 01 - introducción
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web api
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minification
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacion
 
ASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estado
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parciales
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVC
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de software
 
09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables
 

10. consumiendo datos

  • 1. Consumiendo Datos Danae Aguilar Guzmán MCT, MS, MCTS, MCP danaeaguilar@gmail.com
  • 2. Contenido del Módulo  Recibiendo mensajes desde el WebSocket API de HTML5  Usando jQuery para llamadas AJAX  Consumiendo datos JSON y XML  Obteniendo datos de un servicio Web  Obteniendo datos usando XMLHTTPRequest
  • 3. Recibiendo mensajes desde el WebSocket API de HTML5  WebSocket es una tecnología de comunicación full-duplex sobre una conexión basada en TCP.  Permite al server enviar contenido al browser sin que el cliente lo solicite.  Permite una conversación bidireccional mientras la conexión esta abierta  El protocolo WebSocket hace fácil la comunicación en tiempo real  Los URL de webSocket inician con: ws:// o wss://  Configuramos los eventos onopen, onmessage, onerror, y onclose
  • 4. Recibiendo mensajes desde el WebSocket API de HTML5 var wsUri = 'ws://echo.websocket.org/'; var webSocket; $(document).ready(function () { if (checkSupported()) { connect(); $('#btnSend').click(doSend); } }); function writeOutput(message) { var output = $("#divOutput"); output.html(output.html() + '<br />' + message); } function checkSupported() { if (window.WebSocket) { writeOutput('WebSockets supported!'); return true; } else { writeOutput('WebSockets NOT supported'); $('#btnSend').attr('disabled', 'disabled'); return false; } }
  • 5. Recibiendo mensajes desde el WebSocket API de HTML5 function connect() { webSocket = new WebSocket(wsUri); webSocket.onopen = function (evt) { onOpen(evt) }; webSocket.onclose = function (evt) { onClose(evt) }; webSocket.onmessage = function (evt) { onMessage(evt) }; webSocket.onerror = function (evt) { onError(evt) }; } function doSend() { if (webSocket.readyState != webSocket.OPEN) { writeOutput("NOT OPEN: " + $('#txtMessage').val()); return; } writeOutput("SENT: " + $('#txtMessage').val()); webSocket.send($('#txtMessage').val()); } function onOpen(evt) { writeOutput("CONNECTED"); }
  • 6. Implementando AJAX con jQuery 1. Introducción 2. Invocando un servicio Web 3. La función $.ajax()
  • 7. 1. Introducción  jQuery permite implementar AJAX mediante llamadas a servicios web.  jQuery puede llamar a servicios o a métodos web de la misma pagina.  Usamos funciones como jQuery.ajax()  jQuery.ajax() es lo mismo que $.ajax()
  • 8. 2. Invocando un servicio Web Invocando un servicio Web con $.ajax() 1. Definir el servicio: [System.Web.Script.Services.ScriptService] public class EstudiantesService : System.Web.Services.WebService { [WebMethod] public string ObtenerEstudiante(string codigo) { return "Juanito Perez"; } }
  • 9. 2. Invocando un servicio Web Invocando un servicio Web con $.ajax() 2. Invocar el servicio: <script type="text/javascript"> $(document).ready(function () { $("#btnBuscar").click(function () { var miId = $("#txtId").val(); $.ajax({ type: "POST", dataType: "json", contentType: "application/json", url: "EstudiantesService.asmx/ObtenerEstudiante", data: "{'codigo': '" + miId + "'}", success: function (data) { alert("Nombre del Estudiante: " + data.d); }, error: function () { alert("Error invocando al servicio web."); } }); }); }); </script>
  • 10. 3. La función $.ajax() Propiedad Descripción type El tipo de petición o request HTTP, por ejemplo POST contentType Indica el tipo MIME de la petición, por ejemplo JSON. dataType Indica el tipo MIME de la respuesta, por ejemplo JSON. url La dirección url del servicio web, junto con el nombre del método a invocar.
  • 11. 3. La función $.ajax() Propiedad Descripción data Sirve para pasar los parámetros que recibe el servicio web. success Indica una función que será ejecutada si la llamada se ejecuta correctamente. Los resultados de la llamada AJAX serán pasados a esta función como el parámetro que nosotros especificamos en esta función. por ejemplo: data.d, data.d.NombreDePropiedad error Permite especificar una función que será invocada si la llamada AJAX falla.
  • 12. 3. Otras funciones y eventos • .ajaxSend() • .ajaxComplete() • .ajaxError() • .ajaxSuccess() • $.get() • $.post()
  • 13. Retornando JSON • Definimos una clase para serializarla • Podemos usar DataContract y DataMember – (importar el assembly System.Runtime.Serialization) [DataContract] class Estudiante { [DataMember] public string Nombre { get; set; } [DataMember(Name = "edad")] public int Edad { get; set; } }
  • 14. Retornando JSON • Marcamos el método del servicio con los atributos WebMethod y ScriptMethod. • Especificamos que el formato de retorno es JSON [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string ObtenerEstudiante(string codigo) {
  • 15. Retornando JSON • Serializamos el objeto con DataContractJsonSerializer var estudiante = new Estudiante() { Nombre = "Pepito", Edad = 10}; var serializer = new DataContractJsonSerializer(estudiante.GetType()); MemoryStream ms = new MemoryStream(); serializer.WriteObject(ms, estudiante); string jsonString = Encoding.Default. GetString(ms.ToArray()); ms.Close(); return jsonString;
  • 16. Retornando JSON • En el lado del script podemos convertir la cadena en un objeto JavaScript usando eval o con JSON.parse var estudiante = eval('(' + data.d+ ')');
  • 17. Obteniendo datos usando XMLHTTPRequest • Principalmente se usa para datos XML var xmlhttp = new XMLHttpRequest(); xmlhttp.open("POST", "EstudiantesService.asmx/HelloWorld", false); xmlhttp.send(); var xmlDoc = xmlhttp.responseText;