2011-01-11 17 views
62

Estoy escribiendo una aplicación de JavaScript que tiene que recibir una gran cantidad de datos de otros usuarios. No es importante si se pierde parte de esta información. ¿Hay alguna forma de usar JavaScript WebSockets con UDP en lugar de TCP?JavaScript WebSockets con UDP?

Respuesta

45

No, no es posible tener comunicación UDP dentro de JavaScript. Lo siento.

+15

Mierda, espero que añadan esto en el futuro. :( –

+1

@TimeMachine No crearán WebSockets encima de TCP, el saludo inicial también se realiza para que los servidores web lo reconozcan como una solicitud de actualización HTTP. Puede leer más sobre el protocolo en el último borrador: http: //tools.ietf.org/html/draft-abarth-thewebsocketprotocol-00 –

+2

¿Y qué ocurre con node.js? – VansFannel

6

El protocolo WebSockets está sobre TCP solamente según lo definido actualmente.

Puede hacer UDP with Flash si desea utilizar un servidor RTMFP (Protocolo de flujo de mensajería en tiempo real).

+2

Flash está agotado pronto. 2020 – Andrew

-3

Creo que puede aprovechar la tecnología Silverliht 4. Puede crear una aplicación Silverlight 4 para comunicarse con el servidor y luego ponerla en la página html. ¡Entonces su JavaScript puede construir conexiones TCP a través de la aplicación Silverlight 4!

+0

Creo que eso es muy difícil para una aplicación web que solo será utilizada por los desarrolladores de Mac y iPhone. ^^ ' –

+2

Además, Silverlight no es compatible con UDP "reales", solo UDP de multidifusión y solo funciona en LAN. –

+1

La pregunta es para UDP no TCP – markmnl

1

Si esta pregunta aún está pendiente: Encontré un proyecto llamado JNEXT y hay un ejemplo que usa UDP. El proyecto en sí parece estar en pausa, pero al menos en Firefox funciona (no funciona con Chrome y Opera). Puede ser que vale la pena buscarlo.

+2

Si quisiera que el usuario instale software, podría usar Flash aún mejor. –

+0

Flash no le da UDP sin embargo. –

-7

Puede escribir un servidor WebSocket para servir como proxy/bridge entre TCP/UDP.

+16

Eso vencería el propósito completo de UDP. –

44

Parece que lo que está esperando es WebRTC, que está trabajando en su proceso de normalización. WebSockets, como han señalado otras personas, se ejecuta sobre TCP como resultado de iniciar con una actualización de HTTP.

+4

WebRTC se ve casi genial, pero hasta donde puedo decir, tiene que usar RTCDataChannel para la comunicación de datos, y eso usa SCTP que no admite entregas no confiables (necesarias para juegos). Editar: cancela eso, admite un modo no confiable. [Buen artículo aquí] (http://www.html5rocks.com/en/tutorials/webrtc/datachannels/) – Timmmm

+0

No solo eso, sino que es Peer 2 Peer, no excelente para un servidor autoritario. –

+7

No hay razón para que uno de los "pares" no pueda ser su servidor. – Chad

-7

Puede usar la aplicación Autohotkey, recibir paquetes UDP y mostrar Internet Explorer y, finalmente, enviar el contenido rellenando un html TEXTAREA y simular haciendo clic en un BOTÓN ejecutar que desencadena un evento que procesa datos UDP. Lo hice en mi proyecto XPlane Assistant.

2

suena como la pregunta es para UDP del lado del cliente, pero ya terminé aquí ...

Usted puede hacer UDP en JavaScript en el servidor mediante el node.jsdgram package.