Programing

Xmpp 대 Websocket

lottogame 2020. 12. 8. 07:39
반응형

Xmpp 대 Websocket


거의 실시간 채팅이 가능한 웹 사이트를 개발하려고합니다. xmpp 또는 websocket 프로토콜을 사용하여 구현할 수 있다는 것을 알고 있습니다. xmpp 프로토콜이 1999 년에 개발되었다는 것도 알고 있고, 요즘에는 성숙해야한다고 생각합니다. 반면에 웹 소켓 프로토콜은 2011 년에 개발되었습니다.

  1. xmpp가 실시간 대화를 잘 처리한다면 websocket의 필요성은 무엇 이었습니까?
  2. 두 프로토콜의 주요 차이점은 무엇입니까?
  3. 그리고 그중 하나를 다른 것보다 언제 선택해야합니까?

짧은 대답은 '둘 다'입니다.

XMPP는 실시간 채팅을 수행하기위한 일련의 응용 프로그램 프로토콜입니다 (및 그 문제에 대한 다른 많은 작업). 그런 다음 어떻게 든 네트워크를 통해 전송되어야하므로 전송 바인딩이 필요합니다. XMPP에 대한 세 가지 주요 전송 바인딩이 있습니다.

  1. TCP / IP는 일반적으로 장치의 기본 클라이언트와 함께 인터넷에서 사용하는 것입니다.
  2. HTTP (BOSH라고 함)는 브라우저에서 XMPP를 사용할 때 전통적으로 사용 된 것입니다 (TCP-IP는 브라우저의 자바 스크립트 앱에서 사용할 수 없기 때문).
  3. Websockets는 최신 브라우저에서 XMPP를 수행 할 때 사용하는 것입니다.

따라서 브라우저에서 채팅 애플리케이션을 개발하는 경우 애플리케이션 프로토콜로 XMPP를 선택하고 웹 소켓 (최신 브라우저에서) 또는 BOSH (이전 브라우저에서)를 네트워크 전송으로 사용합니다. Stanza.io ( https://github.com/otalk/stanza.io ) 와 같은 Javascript 용 XMPP 라이브러리를 사용하는 경우 둘 다 지원하며 전송 계층이 아닌 'XMPP'에 대해 생각할 것입니다. 연결할 엔드 포인트를 지정해야 할 때 설정하는 것 외에는

(채팅에 '단지 웹 소켓'을 사용할 수 없습니다. XMPP없이 웹 소켓을 사용할 수 있지만 이것이 실제로 의미하는 것은 채팅을위한 자체 애플리케이션 레이어 프로토콜을 개발하고 있다는 것입니다. 유용한 속성 (보안, ID, 확장 성 등)이있는 문서를 작성하는 데 이미 사용 된 작업을 활용하고 대신 XMPP를 사용하여 기존 라이브러리와 서버가있는 작업을 활용함으로써 많은 시간과 골칫거리가됩니다.)


기본적으로 서로 다른 두 가지를 비교하고 있습니다. XMPP는 애플리케이션 프로토콜이고 WebSockets는 전송 프로토콜입니다.

XMPP를 사용하면 많은 시간을 절약 할 수 있다고 생각합니다. 그러나 가장 적합한 방식으로 기능을 구현할 자유를 잃게됩니다. 애플리케이션이 향후 추가 할 항목에 대한 명확한 계획없이 일대일 메시징 및 친구 목록 기능 만 사용하는 경우 WebSockets +가 실행 가능한 솔루션이 될 것입니다. 반면에 응용 프로그램이 다자간 메시징 및 피어 투 피어 미디어 세션과 같은 다른 XMPP 확장의 이점을 누릴 경우 이러한 기능을 구현하는 데 많은 시간이 필요하므로 XMPP를 사용하는 것이 좋습니다.

참고 URL : https://stackoverflow.com/questions/26549010/xmpp-vs-websocket

반응형