[sockets] 소켓과 웹 소켓의 차이점은 무엇입니까?

소켓 연결을 사용하여 다른 응용 프로그램과 통신 해야하는 웹 응용 프로그램을 작성 중입니다. 이것은 나를위한 새로운 영역이므로 소켓websockets 과 다른지 확인하고 싶습니다 . 그것들은 개념적으로 만 비슷한 것 같습니다.

처음에 Django를 프로젝트의 기초로 사용하려고 계획했지만 위의 링크에서 웹 소켓이 가능하지 않다는 것을 분명히 알았습니다. ) 선호하는 장고 설정 (mod_wsgi가있는 Apache)을 사용합니다. 그러나 필자는 서버의 호스트 이름잡는 것과 같이 간단하게 파이썬 소켓 모듈을 가져 오는 다른 게시물을 발견했습니다 .

그래서:

  • 그들은 정말로 다른가?
  • 외부 서버와의 소켓 연결 설정에 의존하는 프로젝트에 Django를 사용하지 않을 이유가 있습니까?


답변

당신의 질문에 대답합니다.

  1. 그들은 비슷한 일 (일반적으로) 달성에도 불구하고, , 그들은 이다 정말 다른. WebSocket은 일반적으로 TCP / IP를 통해 실행 되는 HTTP 와 유사한 프로토콜을 통해 Application Server에 연결하는 브라우저에서 실행됩니다 . 따라서 주로 서버에 영구적으로 연결해야하는 웹 응용 프로그램을위한 것입니다. 반면에 일반 소켓은 더 강력하고 일반적입니다. TCP / IP를 통해 실행 되지만 브라우저 나 HTTP 프로토콜로 제한되지 않습니다 . 그들은 모든 종류의 커뮤니케이션을 구현하는 데 사용될 수 있습니다.
  2. 아니요. 이유가 없습니다.

답변

웹 소켓은 구현시 소켓을 사용합니다. 웹 소켓은 연결 “핸드 셰이크”및 메시지 “프레임”을 정의하는 표준 프로토콜 (현재는 최종 호출이지만 아직 최종은 아님)을 기반으로합니다. 양측은 핸드 셰이크 절차를 거쳐 상호 연결을 수락 한 다음 표준 메시지 형식 ( “프레임”)을 사용하여 메시지를주고받습니다.

설치된 소프트웨어를 사용하여 컴퓨터와 컴퓨터간에 직접 통신 할 수있는 프레임 워크를 개발 중입니다. 목적에 맞을 수도 있습니다. 원하는 경우 내 블로그를 따라갈 수 있습니다 : http://highlevellogic.blogspot.com/2011/09/websocket-server-demonstration_26.html


답변

당신은 WebSocket을 (또는 사용해야 할 것 몇 가지 일반적인 브라우저 응용 프로그램이 단순히 순수한 TCP 소켓을 열 수 없기 때문에 플래시 플러그인에서 지원하는 것과 유사한 프로토콜 모듈 등을).

Socket.IO모듈을 사용할 수에 대한이 node.js는 것을 많은 도움이 있지만 참고 할 수 없는 그 자체로 순수 웹 소켓 모듈.

실제로 실행할 수있는보다 일반적인 통신 모듈의 상단에 WebSocket을, 플래시 소켓을 포함한 다양한 네트워크 프로토콜.

따라서 Socket.IO서버 측에서 사용하려면 해당 클라이언트 코드와 객체도 사용해야합니다. 메시지 프로토콜을 에뮬레이션해야 WebSocket하므로 socket.io서버 에 대한 원시 연결을 쉽게 만들 수 없습니다 .


답변

WebSocket은 HTTP와 마찬가지로 TCP 프로토콜을 통한 또 다른 응용 프로그램 수준 프로토콜입니다.

아래 인용 된 <Spring in Action 4> 일부 스 니펫은 WebSocket을 더 잘 이해하는 데 도움이되기를 바랍니다.

가장 간단한 형태의 WebSocket은 두 응용 프로그램 간의 통신 채널 일뿐입니다 (브라우저가 반드시 필요한 것은 아닙니다) … WebSocket 통신은 모든 종류의 응용 프로그램 간에 사용될 수 있지만 WebSocket 의 가장 일반적인 용도는 서버 응용 프로그램 및 브라우저 기반 응용 프로그램.


답변

귀하의 질문 (b)와 관련하여 Websocket 사양이 확정되지 않았습니다. 에 따르면 W3C :

구현자는이 사양이 안정적이지 않다는 것을 알고 있어야합니다.

개인적으로 나는 Websockets이 현재 사용하기에는 너무 번쩍하다고 생각합니다. 아마 1 년 정도면 유용 할 것입니다.


답변