Po pierwsze, nie zamierzam ani wrogości, ani negacji, chcę tylko poznać ludzkie myśli. Zajmuję się dwukierunkową komunikacją między klientem a serwerem; klient będący aplikacją internetową. W tym momencie mam kilka opcji: opatentowane przez MS połączenie duplex, z tego, co słyszę niewiarygodne i nienaturalne: kometa i gniazda internetowe (dla obsługiwanych przeglądarek).Dlaczego Web Sockets nie używają SOAP?
Wiem, że to pytanie zostało zadane w inny sposób tutaj, ale mam bardziej szczegółowe pytanie dotyczące podejścia. Rozważając gniazda sieciowe są po stronie klienta, kod klienta znajduje się w JavaScript. Czy naprawdę jest intencją zbudowanie dużej części aplikacji bezpośrednio w JavaScript? Dlaczego W3C nie zrobił tego w serwisach internetowych? Czy nie byłoby łatwiej, gdybyśmy mogli korzystać z SOAP w celu zawierania umów i definiowania zdarzeń wraz z istniejącymi komunikatami? Po prostu czuję jak krótki koniec patyka.
Dlaczego nie uczynić prostym i skorzystać z dynamicznego charakteru JS i pozostawić większość kodu tam, gdzie należy ... na serwerze?
Zamiast
mysocket.send("AFunction|withparameters|segmented");
moglibyśmy powiedzieć
myServerObject.AFunction("that", "makessense");
i zamiast
...
mysocket.onmessage = function() { alert("yay! an ambiguous message"); }
...
moglibyśmy powiedzieć
...
myServerObject.MeaningfulEvent = function(realData) { alert("Since I have realistic data...."); alert("Hello " + realData.FullName); }
...
HTML 5 trwał wiecznie, aby zająć ... czy zmarnowaliśmy duży wysiłek w niewłaściwym kierunku? Myśli?
dlaczego zostało to odrzucone? – Anurag
Cóż, część układania nie jest całkowicie prawdziwa. Chociaż protokół SOAP jest w większości przypadków wysyłany za pośrednictwem protokołu HTTP, WSDL umożliwia definiowanie dowolnych powiązań. Ponieważ WSDL jest bardzo rozciągliwy z założenia, możliwe jest zdefiniowanie i wdrożenie powiązania SOAP przez Websockets. W ten sposób będzie to SOAP -> Websocket -> TCP, gdzie SOAP jest tylko formatem kodowania wiadomości. Nawet w przykładzie naszkicowanym w tej odpowiedzi dane, które są wysyłane przez sieć, są w większości zakodowane, np. jako JSON. Prawidłowa analogia to JSON -> Websocket -> TCP vs. SOAP -> Websocket -> TCP vs. SOAP -> HTTP -> TCP. – vanto
@vanto jest taki standard kodowania JSON dla "JSON na WebSocket na TCP"? Coś podobnego do tego, co SOAP zrobił z XML? –