2015-06-29 31 views
15

Sto lavorando a un progetto che prevede la chat in tempo reale (messaggistica, incluse le chat di gruppo).STOMP o XMPP - Over websocket

Ho già lavorato con i websocket, quindi ho iniziato a lavorare su questo utilizzando le web-prese a molla e ho fatto qualche lettura su quale sia il modo migliore di implementarlo. Poi mi sono imbattuto in STOMP (come sottoprotocollo per websockets) e dato che in primavera c'è STOMP è stato un supporto diretto, è stato un po 'facile ottenere ciò che dovevo fare.

Ma il mio dubbio è quanto riguarda la mia comprensione e STOMP XMPP sono protocolli simili (protocolli di messaggistica), ma non sono riuscito a trovare tutte le domande/blog in cui vengono spiegate le differenze e perché qualcuno preferirebbe uno piuttosto che un altro?

Sarà davvero utile se qualcuno spiega come questi due protocolli differiscono?

Grazie.

risposta

15

Come successore di Jabber, XMPP è più focalizzato sulla messaggistica istantanea invece di STOMP. XMPP è un protocollo estensibile e potrebbe essere utilizzato per altri scopi, ma esistono numerosi meccanismi e implementazioni incorporati per la messaggistica istantanea. STOMP offre un meccanismo più generale e qui il "messaggio" indica un significato ampio.

Supponiamo che tu scelga STOMP per il tuo progetto. Quindi sarà probabilmente necessario definire i messaggi di base per determinati scenari (peer-to-peer, chat di gruppo) che sono già offerti da XMPP.

Per confrontare due protocolli;

  • Il messaggio STOMP viene trasportato come testo normale (come indica il nome) mentre XMPP è strutturato come XML.
  • Le connessioni STOMP possono essere stabilite tramite TCP o WebSockets. XMPP supporta TCP o HTTP (lo standard WebSocket è anche propopsed).
  • Nel mondo Java, Spring ha la capacità di parlare di STOMP ed è molto semplice da implementare. Tuttavia, il supporto XMPP può essere aggiunto aggiungendo API di terze parti (ad esempio Smack)