¿Necesito un servidor para usar WebSockets de HTML5?

78

Cuando use WebSockets, ¿tendré que escribir código de servidor? En otras palabras, ¿será necesario que JavaScript en mi aplicación cliente se conecte a un servidor especializado o mi servidor Apache existente funcionará para admitir esto?

cometa
fuente

Respuestas:

20

El servidor debe admitir sockets web. Después de un primer protocolo de enlace en HTTP, el servidor y el cliente abren una conexión de socket. El servidor debe poder comprender y aceptar este protocolo de enlace.

En mi último proyecto, ejecutamos conexiones de socket web con bastante éxito utilizando la última versión de Jetty.

27/02/2014: Ahora también estoy implementando websockets bajo .net con XSockets.net y funciona como un encanto, ni siquiera necesitas un servidor web (autohospedaje). La implementación de WebSocket de ASP.NET también funciona bastante bien.

Rafa
fuente
cwebsocket en github es un servidor pequeño y agradable. es fácil expandirlo también a un servidor http.
minghua
6

Sí, necesita escribir el código del servidor.

Recomiendo otro servidor de socket web basado en php: ratchet . Y este enlace compara los servidores webSocket entre ratchet y sockJS.

Lista completa de códigos del lado del cliente y del servidor y compatibilidad con navegadores, consulte este enlace

ShahRokh
fuente
5

Por supuesto, necesita un servidor WebSocket. Pero hay muchos servidores websocket gratuitos en diferentes idiomas, como jWebSocket en Java y SuperWebSocket en .NET, puede usarlos directamente.

Kerry Jiang
fuente
2
¿Por qué dice "por supuesto" que necesita un servidor? Podría funcionar peer-to-peer, ¿no?
Jonathan Stark
@JonathanStark no. Websocket son solo cliente / servidor. no son de igual a igual. Para una solución de igual a igual, consulte las especificaciones de webrtc.
JAR.JAR.beans
Culpa mía. Estaba pensando en WebRTC. Lo siento por eso.
Jonathan Stark
5

Hay algunos complementos que se están desarrollando actualmente en el código de Google para Apache ...

Por definición, los websockets como los sockets normales son cliente-servidor, así que sí, necesitas un servidor. Sin embargo, existe una alternativa a la espera de los complementos de Apache.

Estoy usando un servidor alojado http://www.achex.ca . Es gratis y tienes tutoriales en javascript sobre cómo usar el servidor. Un buen comienzo para el desarrollo de websockets.

El servidor es básicamente un enrutador de mensajes y puedes conectarte a él y usarlo como punto de encuentro para todos tus clientes de websocket.

Respuesta corta : , necesita un servidor especializado, Apache no viene con websockets.
O
la alternativa , visite www.achex.ca .

AlexC_JEng
fuente
2

En tal situación, el rol de servidor viene cuando:

En HTML 5, WebSocket es como un fone (comunicación bidireccional), no walky-talky. Protocolo http actualizado al protocolo websocket. (wss:// from ws://) El SERVIDOR debe poder abrir el canal dúplex y, por lo tanto, ACEPTA la comunicación dúplex.

Consulte este enlace: http://www.html5rocks.com/en/tutorials/websockets/basics/

Si usa php, mire RATCHET.

Gracias.

Sid
fuente
1

El servidor Perl Mojolicious admite sockets web y las implementaciones pueden tener solo unas pocas líneas.

Node.js tiene varias bibliotecas de WebSocket, pero los detalles de las últimas, mejores y más compatibles con las últimas especificaciones varían, así que elija con cuidado.

También vale la pena echarle un vistazo a Apache Active MQ, junto con el protocolo stomp que implementa.

LeeGee
fuente