WebSockets
aqui esta el link para revisar sobre la tematica
http://www.html5rocks.com/es/tutorials/websockets/basics/
ejemplos
http://www.sanwebe.com/2013/05/chat-using-websocket-php-socket
http://www.phpbuilder.com/articles/application-architecture/optimization/creating-real-time-applications-with-php-and-websockets.html
aqui otro tutorial para la implementacion de websockets https://developer.mozilla.org/es/docs/WebSockets-840092-dup/Writing_WebSocket_client_applications
ResponderEliminarAplicación de Sockets Web en Javascript:
ResponderEliminarPara utilizar los sockets web con javascrip se necesita Socket.IO en el servidor, que se implementa al instalar Node.js en el servidor.
Node es un intérprete Javascript del lado del servidor, cosa que es muy particular por el hecho de que siempre se usa en el lado cliente y fue diseñado para eso, que cambia la noción de cómo debería trabajar un servidor. Su meta es permitir construir aplicaciones escalables y escribir código que maneje miles de conexiones simultáneas en una sólo una máquina física.
En esta página hay mucha información sobre Node.js:
https://www.ibm.com/developerworks/ssa/opensource/library/os-nodejs/
Esta otra es una guía para instalar Node.js:
https://github.com/nodejs/node-v0.x-archive/wiki/Installing-Node.js-via-package-manager
Ejemplo de WebSockets con HTML5
ResponderEliminarWebSockets es una caractarística que incorpora HTML5 que permitirá mejorar las aplicaciones web, permitiendo crear un canal de comunicación bidireccional entre el cliente y el servidor, solucionando los problemas que presenta AJAX.
Con esta nueva característica, se puede llegar ahorrar un ancho de banda en proporción 500:1 y una latencia de 3:1.
* ejemplo de aplicación
http://lineadecodigo.com/html5/crear-un-websocket/
ResponderEliminarWebSockets Introducción para Android
09/2010
Ya sea que los juegos en línea, o la colaboración en línea, streaming, chatear, control remoto o aplicaciones de monitoreo - comunicación en tiempo real hace mucho tiempo se ha movido en los dispositivos móviles. WebSockets HTML5 son la base ideal para el intercambio de datos de alta velocidad bidireccional en tiempo real.
Alexander Schulze - traducción Inglés por Predrag Stojadinovic
¿Por WebSockets?
La multitud de websockets beneficios puede esperar para reemplazar gradualmente los mecanismos tradicionales, como AJAX, XHR, cometa o sondeo. En primer lugar, la comunicación es aerodinámico, porque WebSockets están basados en TCP en lugar de en HTTP. La sobrecarga de protocolo se reducirá, aparte del apretón de manos inicial, a dos bytes por paquete. Esto acelera la aplicación y reduce el volumen de datos - un argumento coste particularmente importante para aplicaciones móviles.
Desde WebSockets son bidireccionales, cliente y servidor pueden compartir un mismo canal de datos en ambas direcciones. En contraste con HTTP y su mecanismo de solicitud / respuesta tradicional para el que se utiliza un canal para enviar y otro se requiere para recibir datos, WebSockets proporcionan comunicación full-duplex real en una conexión TCP - condiciones perfectas para todo empuje servidor y servicios de streaming en Internet.
Además, un servidor WebSocket puede manejar el doble de conexiones simultáneas en comparación con un servidor web HTTP - otro argumento para WebSockets en términos de recursos e inversiones en infraestructura.
Para mayor informacion les dejo este link
http://www.elabs.se/blog/66-using-websockets-in-native-ios-and-android-apps
disculpen compañeros este es el link donde esta toda la informacion sobre websockets en android
Eliminarhttp://jwebsocket.org/about-jws/Press-Articles/android/introduction-websockets-android
WebSocket...
ResponderEliminarEs una tecnología que proporciona un canal de comunicación bidireccional y full-duplex sobre un único socket TCP. Está diseñada para ser implementada en navegadores y servidores web, pero puede utilizarse por cualquier aplicación cliente/servidor. La API de WebSocket está siendo normalizada por el W3C, mientras que el protocolo WebSocket ya fue normalizado por la IETF como el RFC 6455. Debido a que las conexiones TCP comunes sobre puertos diferentes al 80 son habitualmente bloqueadas por los administradores de redes, el uso de esta tecnología proporcionaría una solución a este tipo de limitaciones proveyendo una funcionalidad similar a la apertura de varias conexiones en distintos puertos, pero multiplexando diferentes servicios WebSocket sobre un único puerto TCP (a costa de una pequeña sobrecarga del protocolo)..
En el lado del cliente, WebSocket está ya implementado en Mozilla Firefox 8, Google Chrome 4 y Safari 5, así como la versión móvil de Safari en el iOS 4.2.1 y en Internet Explorer
Para establecer una conexión WebSocket, el cliente manda una petición de negociación WebSocket, y el servidor manda una respuesta de negociación WebSocket, como se puede ver en el siguiente ejemplo:
Petición del navegador al servidor:
GET /demo HTTP/1.1
Host: example.com
Connection: Upgrade
Sec-WebSocket-Key2: 12998 5 Y3 1 .P00
Sec-WebSocket-Protocol: sample
Upgrade: WebSocket
Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5
Origin: http://example.com
^n:ds[4U
Respuesta del servidor:
HTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: http://example.com
Sec-WebSocket-Location: ws://example.com/demo
Sec-WebSocket-Protocol: sample
8jKS'y:G*Co,Wxa-
LINK...
https://es.wikipedia.org/wiki/WebSocket
http://www.html5rocks.com/es/tutorials/websockets/basics/
Tutorial.... Que es WebSocket???
https://www.youtube.com/watch?v=PQxaysbR6_U
CARACTERISTICAS DE WEBSOCKETS
ResponderEliminarLas características que hacen interesante a WebSockets se encuentra la promesa de ofrecer una API simple para comunicar con el servidor así como la posibilidad de que estas comunicaciones sean bidireccionales, es decir, que puedan iniciarse en el lado del servidor; todo ello con una mejora en la latencia que actualmente soportan esta clase de comunicaciones.
*Hace ya algún tiempo que existen tecnologías que permiten al servidor enviar datos al cliente en el mismo momento que detecta que hay nuevos datos disponibles.
ResponderEliminar*Uno de los trucos más comunes para crear la ilusión de una conexión iniciada por el servidor se denomina Long Polling (sondeo largo).
*WebSockets es una tecnología que hace posible abrir una sesión de comunicación interactiva entre el navegador del usuario y un servidor. Con esta API, puedes enviar mensajes a un servidor y recibir respuestas por eventos sin tener que consultar al servidor.
Incorporación de sockets a la Web:
-existe una conexión persistente entre el cliente y el servidor, y ambas partes pueden empezar a enviar datos en cualquier momento.
FUENTE:
http://www.html5rocks.com/es/tutorials/websockets/basics/
ALTERNATIVAS A WEBSOCKET
ResponderEliminarEl protocolo HTTP fue concebido desde sus orígenes para ofrecer comunicaciones en un sólo sentido, desde el servidor hacia el cliente. Sin embargo las aplicaciones web de hoy en día demandan más que eso para poder ofrecer una experiencia de usuario más rica, necesitan flujo de información en ambos sentidos en el mismo instante en el que ocurren los eventos.
Para mitigar esa necesidad han aparecido varias estrategias, entre ellas long polling y Websocket. En long polling el cliente se mantiene haciendo preguntas al servidor sobre un determinado evento mientras que con Websocket tenemos a nuestra disposición un nuevo protocolo que permite la interacción entre el cliente y el servidor, facilitando la transmisión de datos en tiempo real en ambas direcciones. Es aquí donde entra Socket.io.
¿Qué es Socket.io?
Socket.io es una librería en JavaScript para Node.js que permite una comunicación bidireccional en tiempo real entre cliente y servidor. Para ello se basa principalmente en Websocket pero también puede usar otras alternativas como sockets de Adobe Flash, JSONP polling o long polling en AJAX, seleccionando la mejor alternativa para el cliente justo en tiempo de ejecución.
Es importante resaltar que las aplicaciones hechas en Socket.io tiene una desventaja y es que no soportan interacciones con otros clientes que usen Websocket estándar. Esto se debe a que Socket.io no es una implementación del protocolo Websocket sino una librería de comunicación web en tiempo real que utiliza varios protocolos. Sin embargo, eso no le quita que sea muy poderosa y fácil de usar, ideal para cualquier proyecto en el que tanto el cliente como el servidor puedan usar la misma librería.
EJEMPLO1 PASO A PASO -> http://programacion-ejemplo1.blogspot.com/
ResponderEliminarUn pequeño error de comando cuando ejecutamos el servidor desde la consola fue solucionado.
Original
php -q c:\path-to-server\server.php
Reemplazar por
php.exe -q C:\xampp\htdocs\dante_666\server.php
El error que sale es porque falta el .exe para ejecutar el php desde la consola.
ANÁLISIS DE LA TECNOLOGÍA WEBSOCKET
ResponderEliminarLa tecnología WebSocket consiste en una API que permite a las páginas web utilizar el protocolo web socket para establecer una vía de comunicación full dúplex (ida y vuelta de forma simultanea) con el servidor utilizando un mismo socket. Anteriormente a la aparición de esta tecnología, los programadores utilizaban diversos métodos para emular una conexión full dúplex con el servidor, sin embargo estos métodos provocaban un alto tráfico en la red, consumo de recursos del servidor y latencia.
VENTAJAS:
-Reduce el uso de la red, ya que evita la necesidad de utilizar los paquetes HTTP que contienen grandes cantidades de datos de cabecera, lo que recae, además, en un mayor trabajo de procesamiento.
-Se reduce la latencia en las conexiones ya que ponen menos carga en los servidores, y esto permite que estos equipos atiendan más conexiones simultaneas
-Permite atravesar firewalls y servidores proxy. En este caso si un WebSocket detecta la presencia de un servidor proxy, solicita una conexión TCP/IP usando una instrucción Connect HTTP, luego de lo cual se puede pasar por el proxy sin problemas
-Facilita una mayor escalabilidad en la Web debido a su eficiencia al momento de mantener conexiones persistentes con los servidores
-Es más rápido que el protocolo HTTP
DESVENTAJAS:
-Es una tecnología que continua en desarrollo, por lo que es común encontrar problemas de conectividad con algunos navegadores. Actualmente los principales navegadores que lo implementan son los siguientes: Chrome, Safari, Firefox, entre otros.
WebSockets con PHP
ResponderEliminarla aplicación se comunica con el servidor
Si en algo hace agua PHP es en proporcionar un canal de comunicación bidireccional entre el servidor web y el navegador del cliente. Aunque si vamos al caso, el lenguaje no fue creado con esa intención, por lo que las culpas son muy relativas, en cambio herramientas como Node.js hacen un excelente trabajo en estos menesteres.
AKI EL EJEMPLO
http://www.kabytes.com/programacion/websockets-para-php/
WEBSOCKETS
ResponderEliminarHTML5 como estándar incorpora Websockets entre sus nuevas características, para comprender esta tecnología en primer lugar vamos a exponer que intenta resolver Websockets y como se implementa la comunicación entre cliente y servidor hoy en día.
COMUNICACIÓN CLIENTE - SERVIDOR
La problemática que intenta resolver websockets, generalizando, es comunicar los procesos del servidor con los procesos del cliente (navegador) en una plataforma web, mejorando las técnicas actuales. El servidor generalmente recibe las peticiones de los clientes, las procesa y envía posteriormente los resultados a través de la conexión que existe entre ellos.
EL CONCEPTO DE WEBSOCKETS
Websockets es la tecnología que llega para resolver los problemas de comunicación que plantea el esquema anteriormente descrito. De manera simple, Websockets permite comunicar el cliente y el servidor a través de un canal Full Duplex bidireccional y sin tener que hacer polling por parte del cliente.
LA IMPLEMENTACIÓN DE WEBSOCKETS
La implementación de Websockets si bien varía dependiendo del lenguaje de programación utilizado en el cliente o en el servidor la estructura básica es muy similar. Se trata de crear un socket del lado cliente y utilizarlo para enviar datos al servidor utilizando el lenguaje de interfaz que queramos, sea JSON, XML u otros.
Del lado del servidor se implementan las funciones o eventos que manejarán la información enviada a través del websocket.
{ FUENTE: https://sites.google.com/site/gabineteutn/investigacion-y-desarrollo/html5/tutoriales/introduccion-a-websocket }
se puede utilizar para implementar servidores y clientes TCP asíncronos. Además, también he hablado sobre algunas de las vulnerabilidades más comunes en WebSockets, una de las características más interesantes en la especificación HTML5. En esta ocasión veremos cómo utilizar los módulos disponibles en Tornado para crear un servidor web básico que soporte WebSockets para poder realizar pruebas de concepto rápidas y comprender el comportamiento tanto en clientes como servidores de los websockets.
ResponderEliminarthehackerway.com/2015/01/29/implementando-websockets-con-tornado/
WebSockets, como alude su nombre, trae el modelo de sockets de TCP/IP a la web, permitiendo comunicación bi-direccional entre servidores y navegadores web, en cualquier momento.
ResponderEliminarPero, ¿cómo puede eso ser posible? Pues para empezar, el navegador web debe soportar la tecnología, y además el servidor web (o servidor de aplicaciones) debe implementar también el protocolo. No es algo que se hace encima de librerías existentes de Javascript.
De la manera que funciona es que el navegador web debe primero notificarle al servidor web que desea recibir mensajes por WebSockets, y proveer al subsistema de WebSockets local (es decir, javascript) la función a ser llamada estilo Callback cuando el servidor desee enviar datos.
En esencia, tu simplemente tienes que poner tu código que recibe el mensaje del servidor en la función callback, y te olvidas del resto. Cuando el servidor te envíe un mensaje, tu función será llamada de modo asíncrono, y tu código se ejecutará. Así de sencillo.
Algo genial es que el overhead de WebSockets es minúsculo comparado con el de HTTP. Para que tengan una idea, en mediciones realizadas (fuente) es posible bajar de requerir 655Mbps de ancho de banda (para soportar a 100,00 usuarios enviando 1 mensaje por segundo), a tan solo 1.5Mbps. Es decir, 430 veces menos ancho de banda.
Y ese ahorro en recursos se debe a que el protocolo soporta no solo la transferencia de objetos, sino que además de datos binarios (en forma de Blob o ArrayBuffer en javascript), permitiendo un nivel de baja latencia y rendimiento que hasta ahora era solo dominio de sockets de bajo nivel.
En cuanto a aplicaciones de WebSockets, son infinitas. Prácticamente cualquier aplicación que requiera de información del servidor en intervalos desconocidos y en tiempo real es candidato para utilizar Web Scoekts. Así mismo como cualquier aplicación que requiere de la eficiente transmisión de datos (como por ejemplo, programas de chateo, o incluso de voz, o de transferencia de archivos).
http://www.eliax.com/index.cfm?post_id=9580
Aplicaciones en Tiempo Real, HTML5 y Node.JS
ResponderEliminarPHP WebSocket Chat Application
https://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/
http://www.nicholls.co/blog/post/Aplicaciones-en-Tiempo-Real-HTML5-y-NodeJS