Jetty WebSocket API gegenüber der Standard-JSR-356-API

8

Jetty 9 unterstützt sowohl als auch seine eigene Jetty Websocket API Standard JSR 356 API, für die ich vermute, sind historische Gründe (Jetty's API vor der abschließender JSR 356 ).

Ich habe mir die grundlegende Dokumentation beider APIs sowie einige Beispiele angesehen. Beide APIs scheinen ziemlich vollständig und ziemlich ähnlich zu sein. Allerdings muss ich für ein neues Projekt, das ich schreibe, eines über dem anderen auswählen, und ich möchte es vermeiden, eine API zu verwenden, die in der Zukunft veraltet sein könnte oder sich als weniger funktionsreich erweisen könnte.

>

Gibt es also wichtige Unterschiede zwischen den beiden außer der offensichtlichen Tatsache, dass man standardisiert ist?

    
Malt 10.09.2014, 16:40
quelle

1 Antwort

13

Implementierer von beiden auf Jetty hier:)

Die Jetty-WebSocket-API kam zuerst und die JSR-356-API wurde darauf gebaut.

Die JSR-356-API führt einige Dinge aus, die die Jetty-WebSocket-API nicht unterstützt, z. B.

  • Decoder für automatische Bin / Text-zu-Objekt-Konvertierung
  • Encoder für automatische Konvertierung von Objekt zu Bin / Text
  • Path Param-Behandlung (auch bekannt als automatische URI-Template-zu-Methode-Param-Zuordnung)

Die Jetty WebSocket API kann jedoch Dinge tun, die die JSR-356 API nicht kann.

  • WebSocketCreator-Logik für die beliebige Erstellung des WebSocket-Endpunkts mit Zugriff auf den HttpServletRequest
  • Bessere Kontrolle von Timeouts
  • Feinere Puffer- / Speicherkonfigurationen
  • Sie können WebSocket-Erweiterungen verwalten
  • Unterstützt Reg-ex-basierte Pfadzuordnungen für Endpunkte
  • Zugriff auf rohe Frame-Ereignisse
  • Der WebSocket-Client unterstützt eine bessere Verbindungslogik mit Timeouts
  • Der WebSocket-Client unterstützt SSL (der eigenständige JSR-356-Client verfügt über keine Konfigurationsoptionen)
  • Zugriff auf die beiden InetAddress-Endpunktinformationen vom aktiven WebSocket-Sitzungsobjekt
  • Zugriff auf UpgradeRequest vom aktiven WebSocket-Sitzungsobjekt
  • Bessere Unterstützung für zustandslose Endpunkte
  • Leseereignisse unterstützen die Suspend- / Resume-Logik, um eine gewisse Basis-tcp-Gegendruck- / Flusssteuerung zu ermöglichen
  • Filterbasierte oder Servlet-basierte Konfiguration (der JSR-356-Ansatz erfordert ein Upgrade vor allen anderen Servlet- und Filter-Prozessen)

Ich hoffe, dies hilft, wenn Sie weitere Informationen wünschen, verwenden Sie bitte das Anlegesteg-Benutzer-Mailing Liste , da diese Art von Frage für stackoverflow wirklich ungeeignet ist.

    
Joakim Erdfelt 10.09.2014, 21:32
quelle

Tags und Links