Select Page

서버 측에서 websockets는 각 WebSocket 연결에 대해 처리기 코루틴 안녕하세요를 한 번 실행합니다. 처리기 코루틴이 반환될 때 연결을 닫습니다. 웹 소켓 API의 디자인은 단순함으로 인해 추진되었습니다. 요청 라우터를 사용하는 예는 테스트 폴더의 libwebsockets-test-server.js를 참조하십시오. websockets는 이 모든 것을 후드 아래에 처리하므로 필요가 없습니다. 참고: WebSocket 연결은 기능적으로 표준 유닉스 스타일 소켓과 다소 유사하지만 관련이 없습니다. ws는 사용하기 쉽고 빠르며 철저하게 테스트된 WebSocket 클라이언트 및 서버 구현입니다. 가능하면 최신 버전의 파이썬을 사용해야 합니다. 이전 버전을 사용하는 경우 각 마이너 버전(3.x)에 대해 최신 버그픽스 릴리스(3.x.y)만 공식적으로 지원됩니다. 초안 75/초안-76/초안-00을 구현한 레거시 브라우저 버전을 동시에 지원해야 하는 경우, https://gist.github.com/1428579 Secure WebSocket 연결은 잘못된 프록시에 의한 간섭 위험을 줄이기 때문에 기밀성과 안정성을 향상시킵니다.

WebSocket을 사용하여 빌드된 응용 프로그램의 주요 약속 중 하나는 기존 HTTP 기반 앱에서 수행할 수 없는 방식으로 수행하는 것입니다. 사용자 지정 http를 사용합니다. https-프록시 에이전트 또는 양말 프록시 에이전트와 같은 에이전트 구현. 매우 완전한 Autobahn 테스트 제품군은 대부분의 WebSocket 구현에서 사양 준수 및 상호 운용성을 테스트하는 데 사용됩니다. 이것은 노드에 대한 WebSocket 프로토콜 버전 8 및 13의 (대부분) 순수 자바 스크립트 구현입니다. “테스트/스크립트” 폴더에 다양한 상호 운용성 테스트 프로토콜을 구현하는 몇 가지 예제 클라이언트 및 서버 응용 프로그램이 있습니다. 아래 정의된 옵션을 통해 메시지-수축 조정을 수행할 수 있습니다. 또한 zlibDeflate옵션 및 zlibInflate옵션을 사용할 수 있으며, 이는 원시 수축/팽창 스트림의 생성에 직접 전달됩니다. Socket.IO의 “안녕하세요 세계”는 몇 줄의 코드로 구성된 채팅 앱입니다. WebSocket API는 사용자의 브라우저와 서버 간에 양방향 대화형 통신 세션을 열 수 있는 고급 기술입니다. 이 API를 사용하면 서버에 메시지를 보내고 회신을 위해 서버를 폴링하지 않고도 이벤트 기반 응답을 받을 수 있습니다.

그러나 네이티브 확장은 선택 사항이며, WebSocket 노드는 확장을 컴파일할 수 없는 경우에도 작동합니다. 위와 같은 예이지만 W3C WebSocket API를 사용합니다. 클라이언트는 서버에서 지원되고 활성화된 경우에만 확장을 사용합니다. 클라이언트에서 확장을 항상 사용하지 않도록 설정하려면 perMessageDeflate 옵션을 false로 설정합니다. 이러한 경우 ping 메시지를 사용하여 원격 끝점이 여전히 응답성이 있는지 확인할 수 있습니다. 때로는 서버와 클라이언트 간의 연결이 중단된 상태(예: 코드를 당길 때)를 인식하지 못하게 하는 방식으로 서버와 클라이언트 간의 연결이 중단될 수 있습니다. 확장은 서버에서 기본적으로 비활성화되고 클라이언트에서 기본적으로 활성화됩니다. 성능 및 메모리 소비 측면에서 상당한 오버헤드를 추가하므로 실제로 필요한 경우에만 사용하도록 설정하는 것이 좋습니다.