En primer lugar, no pretendo hostilidad ni negguencia, solo quiero conocer los pensamientos de las personas. Estoy buscando una comunicación bidireccional entre el cliente y el servidor; el cliente es una aplicación web. En este punto, tengo algunas opciones: enlace dúplex propiedad de MS, por lo que escucho poco confiable y antinatural: cometa y sockets web (para navegadores compatibles).¿Por qué Web Sockets no usa SOAP?
Sé que esta pregunta se ha planteado de otras maneras aquí, pero tengo una pregunta más específica al respecto. Considerando que los sockets web están en el lado del cliente, el código del cliente se encuentra en JavaScript. ¿Realmente es la intención crear una gran parte de una aplicación directamente en JavaScript? ¿Por qué el W3C no hizo esto en los servicios web? ¿No sería más fácil si pudiéramos usar SOAP para proporcionar un contrato y definir eventos junto con la mensajería existente involucrada? Solo se siente como el extremo corto del palo hasta el momento.
¿Por qué no hacerlo simple y aprovechar la naturaleza dinámica de JS y dejar la mayor parte del código en el lugar al que pertenece ... en el servidor?
En lugar de
mysocket.send("AFunction|withparameters|segmented");
podríamos decir
myServerObject.AFunction("that", "makessense");
y en lugar de
...
mysocket.onmessage = function() { alert("yay! an ambiguous message"); }
...
podríamos decir
...
myServerObject.MeaningfulEvent = function(realData) { alert("Since I have realistic data...."); alert("Hello " + realData.FullName); }
...
HTML 5 demoró para siempre ... ¿Perdimos una gran cantidad de esfuerzo en la dirección incorrecta? ¿Pensamientos?
¿por qué se bajó este voto? – Anurag
Bueno, la parte de apilamiento no es del todo cierto. Aunque, en la mayoría de los casos, SOAP se envía a través de HTTP, WSDL permite definir enlaces arbitrarios. Como WSDL es muy extensible por diseño, es posible definir e implementar un enlace SOAP sobre Websockets. De esta forma sería SOAP -> Websocket -> TCP, donde SOAP es solo el formato de codificación del mensaje. Incluso en el ejemplo esbozado en esta respuesta, los datos que se envían a través del websocket se codifican de alguna manera, p. como JSON. Entonces, la analogía correcta sería JSON -> Websocket -> TCP vs. SOAP -> Websocket -> TCP vs. SOAP -> HTTP -> TCP. – vanto
@vanto ¿Existe algún estándar de codificación JSON para "JSON en WebSocket en TCP"? ¿Algo similar a lo que hizo SOAP con XML? –