WebSocket ve STOMP protokolleri arasındaki fark nedir?


Yanıtlar:


91

Bu soru, TCP ve HTTP arasındaki farkı sormaya benzer. Yine de sorunuzu yanıtlamaya çalışacağım, eğer başlıyorsanız bu iki terim arasında kafanızın karışması doğaldır.

Kısa cevap

STOMP, WebSockets'in üstünde türetilmiştir. STOMP, WebSockets kullanılarak istemci ve sunucu arasında mesaj çerçevelerinin nasıl değiş tokuş edildiğine dair birkaç özel yoldan bahseder.


Uzun cevap

WebSockets

İstemci ile sunucu arasında eşzamanlı çift yönlü iletişime izin veren bir özelliktir. TCP soketlerine benzer olmakla birlikte, bir akış yerine iki taraf arasında değişken uzunluklu çerçeveler değiştiren, yükseltilmiş bir HTTP bağlantısı olarak çalışan bir protokoldür.

AYAĞIYLA EZMEK

İstemcilerin ve sunucuların mesajlaşma anlambilimiyle iletişim kurması için bir protokol tanımlar. Herhangi bir uygulama ayrıntısı tanımlamaz, bunun yerine mesajlaşma entegrasyonları için uygulanması kolay bir kablo protokolünü ele alır. WebSockets protokolünün üzerinde daha yüksek anlamsallık sağlar ve WebSockets çerçevelerine eşlenen bir avuç çerçeve türünü tanımlar. Bu türlerden bazıları ...

  • bağlanmak
  • abone ol
  • abonelikten çık
  • gönder (sunucuya gönderilen mesajlar)
  • mesaj (sunucudan gönderilen mesajlar için) BEGIN, COMMIT, ROLLBACK (işlem yönetimi)

Eşzamansız mı demek istediniz?
Anatolii Stepaniuk

25

WebSocket , bir mesajlaşma mimarisi anlamına gelir, ancak herhangi bir özel mesajlaşma protokolünün kullanılmasını zorunlu kılmaz. TCP üzerinde çok ince bir katmandır ve bayt akışını bir mesaj akışına (metin veya ikili) dönüştürür ve çok daha fazlasına değil. Bir mesajın anlamını yorumlamak uygulamalara kalmıştır.

Uygulama düzeyinde bir protokol olan HTTP'den farklı olarak, WebSocket protokolünde, bir çerçeve veya kapsayıcı için onu nasıl yönlendireceğini veya işleyeceğini bilmek için gelen mesajda yeterli bilgi yoktur. Bu nedenle WebSocket, çok önemsiz bir uygulama dışında herhangi bir şey için tartışmasız çok düşük seviyededir. Yapılabilir, ancak muhtemelen en üstte bir çerçeve oluşturmaya yol açacaktır. Bu, günümüzde çoğu web uygulamasının yalnızca Servlet API'sinden ziyade bir web çerçevesi kullanılarak nasıl yazıldığıyla karşılaştırılabilir.

Bu nedenle WebSocket RFC, alt protokollerin kullanımını tanımlar. El sıkışma sırasında, istemci ve sunucu, bir alt protokol, yani kullanılacak daha yüksek, uygulama düzeyinde bir protokol üzerinde anlaşmak için Sec-WebSocket-Protokolü başlığını kullanabilir. Bir alt protokolün kullanılması gerekli değildir, ancak kullanılmasa bile uygulamaların hem istemcinin hem de sunucunun anlayabileceği bir mesaj formatı seçmesi gerekecektir. Bu format özel, çerçeveye özgü veya standart bir mesajlaşma protokolü olabilir.

STOMP  - HTTP'den esinlenilen çerçevelerle komut dosyası oluşturma dillerinde kullanılmak üzere orijinal olarak oluşturulmuş basit bir mesajlaşma protokolü. STOMP, yaygın olarak desteklenir ve WebSocket ve web üzerinden kullanım için çok uygundur.


13

WebSocket API, web uygulamalarının çift yönlü iletişimi yönetmesini sağlarken, STOMP basit bir metin odaklı mesajlaşma protokolüdür.

STOMP protokolü, bir web uygulamasının bir web sunucusuyla çift yönlü iletişimi desteklemesi gerektiğinde genellikle bir web soketinde kullanılır.

İyi bir öğretici, Jeff Mesnill tarafından yazılan STOMP Over WebSocket (2012)

STOMP ayrıca bir web soketi olmadan da kullanılabilir, örneğin bir Telnet bağlantısı veya bir mesaj aracılık hizmeti üzerinden.

Ve Raw WebSockets STOMP olmadan kullanılabilir - Örn. STOMP ve SockJ'ler olmadan Spring Boot + WebSocket örneği .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.