Está en la página 1de 7

COMUNICACIN APLICACIN SERVIDOR.

Cliente/Servidor es una frase que se usa para describir un modelo de interaccin entre
dos procesos, que se ejecutan de forma simultnea. Este modelo es una comunicacin
basada en una serie de preguntas y respuestas, que asegura que si dos aplicaciones
intentan comunicarse, una comienza la ejecucin y espera indefinidamente que la otra le
responda y luego continua con el proceso.

Cliente: aplicacin que inicia la comunicacin, es dirigida por el usuario.

Servidor: es quien responde a los requerimientos de los clientes, son procesos


que se estn ejecutando indefinidamente.

Presentacin de Wit API de voz


Los comandos de voz son el futuro. Ciencia-ficcin que ha tenido durante
dcadas y, sin embargo, an nos queda alcanzar para el control remoto para
encender el televisor o establecer una alarma. Nuestra misin es cambiar
esto. Adicin de una interfaz de voz a una aplicacin o dispositivo debe ser
simple.

Pasando la voz en datos procesables


Hoy en da, estamos muy contentos de anunciar nuestra nueva "Discurso a
JSON" API , cuatro meses despus del lanzamiento de la "Texto para JSON"
API.

A partir de ahora, su aplicacin, dispositivo o incluso su sitio web puede


transmitir audio a nuestro servidor, y obtener datos procesables a cambio.

Cmo funciona?
Detrs de la escena, Wit combina varias tcnicas de estado-of-the-art de
Procesamiento del Lenguaje Natural y varios motores de reconocimiento de voz
con el fin de lograr una baja latencia y alta solidez a ambas variedades de ruido
y parafrsticas circundantes (hay millones de maneras de decir lo mismo ).
Afortunadamente, usted no tiene que preocuparse por toda esta
maquinaria. Nos centramos toda nuestra energa en crear la experiencia del
desarrollador simple posible. Usted puede estar en funcionamiento en pocos
minutos utilizando nuestro sitio web . Wit se adaptar a su dominio a travs del
tiempo, desde la distribucin de helados para las misiones espaciales. Wit no
hace suposiciones y sigue siendo 100% configurable.

El consumo de la API
Entonces, llamando a la API es simple. Proporcionamos SDK de cliente que
manejan la grabacin de audio y streaming para iOS , Android o incluso una
pgina web sencilla como sta . Tambin puede utilizar la interfaz HTTP para
transmitir audio en vivo o publicar un archivo de sonido:

Cul es WebSocket?

WebSocket es un protocolo que permite la comunicacin entre el


cliente y el servidor / punto final mediante una nica conexin
TCP.Suena un poco como http no lo hace? El WebSocket ventaja
tiene sobre HTTP es que el protocolo es full-duplex (permite para

uso simultneo de dos vas communcation) y es cabecera es


mucho menor que la de una cabecera HTTP, permitiendo
communcation ms eficiente incluso en pequeos paquetes de
datos.
El ciclo de vida de un WebSocket es fcil de entender, as:
1.

El cliente enva una solicitud apretn de manos en forma de


una cabecera HTTP de actualizacin con datos sobre la
WebSocket que est intentando conectarse al servidor.

2.

El servidor responde a la solicitud con otra cabecera HTTP,


esta es la ltima vez que una cabecera HTTP se utiliza en la
conexin WebSocket. Si el apretn de manos fue un xito, que
el servidor enva una cabecera HTTP decirle al cliente que est
cambiando al protocolo WebSocket.

3.

Ahora una conexin constante se abre y el cliente y el


servidor puede enviar cualquier nmero de mensajes entre s
hasta que la conexin est cerrada. Estos mensajes slo
tienen alrededor de 2 bytes de sobrecarga.

Un ejemplo sencillo

El API WebSocket se introdujo con Java EE7, en este ejemplo


crearemos un cliente que enviar un mensaje al servidor y el
servidor que luego lo devolver.
Para este ejemplo voy a estar utilizando el NetBeans 7.4 y el
servidor Glassfish 4, que viene incluido con NetBeans.

Configuracin del proyecto

Abra el Asistente para nuevo proyecto, elija Java Web y


seleccione Aplicacin Web. Seleccione siguiente, el nombre de su
proyecto y elija es guardar la ubicacin y pulse siguiente.

Asegrese de que su servidor elegido es el nombre de su


servidor GlassFish y que la versin de Java EE que est
trabajando es de 7 y pulse Finalizar.

Su proyecto ahora debe ser generada. Ahora, vamos a construir


el servidor de punto final que se encargar de mensajes
WebSocket entrantes.
En su proyecto de ir a "Paquetes Fuente" y crear una nueva clase
Java. El punto final de servidor es un Objeto Plain Old Java
(POJO), que utiliza las anotaciones de Java para definir que es
mtodos (Esto se puede hacer mediante programacin, pero se
ve mucho ms limpio mediante anotacin). Este es el cdigo para
el punto final:
importacin
import
import
import
import
import

java.io.IOException ;

javax.websocket.OnClose ;
javax.websocket.OnMessage ;
javax.websocket.OnOpen ;
javax.websocket.Session ;
javax.websocket.server.ServerEndpoint ;

/ **
*ServerEndpoint Da el nombre relativa para el punto final
* Esto se accede a travs de ws: // localhost: 8080 / EchoChamber / echo

* Donde "localhost" es la direccin del host,


* "EchoChamber" es el nombre del paquete
* Y "eco" es la direccin directa de este tipo desde el servidor
* /
ServerEndpoint ( "/ echo" )
pblica clase EchoServer {
/ **
*OnOpen Nos permite interceptar la creacin de una nueva sesin.
* La clase de sesin nos permite enviar los datos al usuario.
* En el mtodo onOpen, se lo haremos saber al usuario que el apretn de manos fu
* xito.
* /
OnOpen
pblico vaco onOpen ( Session session ) {
System . cabo . println ( sesin. getId ( ) + "ha abierto una conexin" ) ;
intentar {
sesin. getBasicRemote ( ) . SendText ( "Conexin establecida" ) ;
} catch ( IOException ex ) {
. ex printStackTrace ( ) ;
}
}

/ **
* Cuando un usuario enva un mensaje al servidor, este mtodo interceptar el men
* Y que nos permitan reaccionar a ella. Por ahora el mensaje es ledo como una c
* /
OnMessage
pblico vaco onMessage ( Cadena mensaje, sesin Sesin ) {
System . cabo . println ( "Mensaje" + sesin. getId ( ) + ": " + message
try {
session. getBasicRemote ( ) . sendText ( message ) ;
} catch ( IOException ex ) {
ex. printStackTrace ( ) ;
}
}

/ **
* El usuario cierra la conexin.
*
* Nota: no puede enviar mensajes al cliente de este mtodo
* /
OnClose
pblico vaco onClose ( Session session ) {
System . cabo . println ( "Session" + sesin. getId ( ) + "ha terminado" ) ;
}

Y el cdigo para el cliente, que entra en el index.html. En la vista


del proyecto vaya a las pginas Web y abierto index.html esto
debe ser algo de HTML genrico. Me va a utilizar HTML /
Javascript para controlar el lado del cliente. Hay un estndar API
para WebSockets en JavaScript y est apoyada por la mayora
de los navegadores modernos . En index.html reemplace el
cdigo con lo siguiente:

Edit: Como se ha sealado en los comentarios, la conexin no


definido parece ser un error en algunos navegadores .
Todo lo que queda por hacer ahora es ejecutar el servidor. En
NetBeans clic derecho en el directorio del proyecto y seleccione
Ejecutar, esta se iniciar Glassfish y desplegar la aplicacin en el
servidor. Su navegador predeterminado ahora debe abrir una
nueva pgina en la que puede empezar a utilizar el cliente
anterior. Para abrir la prensa conexin abierta, escriba algo en el
cuadro de texto y pulse enviar.Cuando su prensa realizada el
botn de cierre.
Su cliente debe ser algo como esto:

Y para demostrar que no es slo humo y espejos, aqu est la


salida desde el servidor, la cadena hexadecimal que se muestra
es el ID del cliente:

Y ah lo tienen, cmo crear una aplicacin sencilla Echo usando


sockets web en Java EE7. En mi prximo artculo, voy a utilizar
WebSockets para transportar la informacin ms importante, las
imgenes de nuestras mascotas.
Tienes algn comentario o pregunta? Dejarlos a continuacin.
Este post es parte de nuestra "Artculos GlassFish
ndice "serie. En estos artculos, nuestro objetivo es explorar
GlassFish de diferentes maneras, desde tutoriales tiles, a
JaveOne y general.

Web grafia
http://nereida.deioc.ull.es/~cleon/doctorado/tic02/cs.html
https://wit.ai/blog/2014/02/12/speech-api
https://blog.idrsolutions.com/2013/12/websockets-anintroduction/

También podría gustarte