>  기사  >  백엔드 개발  >  Golang Fiber의 WebSocket 클라이언트의 경우 HTTP 클라이언트/연결을 WebSocket으로 변환하는 방법은 무엇입니까?

Golang Fiber의 WebSocket 클라이언트의 경우 HTTP 클라이언트/연결을 WebSocket으로 변환하는 방법은 무엇입니까?

王林
王林앞으로
2024-02-14 21:06:091236검색

对于 Golang Fiber 的 WebSocket 客户端,如何将 HTTP 客户端/连接转变为 WebSocket?

php 편집자 Xinyi는 Golang Fiber의 WebSocket 클라이언트 변환에 대한 질문에 대한 답변을 제공합니다. Golang Fiber로 개발할 때 때로는 HTTP 클라이언트나 연결을 WebSocket 클라이언트로 변환해야 할 때가 있습니다. 이를 통해 동일한 연결에서 HTTP와 WebSocket 간의 양방향 통신이 가능해집니다. 다음으로 이러한 변환 프로세스를 달성하는 방법을 자세히 설명하겠습니다. 다음 단계를 수행하면 Golang Fiber에서 WebSocket 클라이언트를 사용하여 쉽게 개발할 수 있습니다.

질문 내용

배경 정보는 최근 stackoverflow 기사를 참조하세요.

저는 아래와 같이 Golang Fiber를 사용하여 WebSockets 서비스를 설정하고 있습니다.

으아악

다음과 같이 UpgradeHandler 미들웨어를 사용하세요:

으아악

서비스의 HTTP 클라이언트가 http://chat.acme.ai:80/ws/123etc에 HTTP GET 요청을 보내고 Fiber 서버가 WebSocket 서비스를 열도록 합니다. 예:

으아악

WebSocket이 닫힐 때까지 스트림을 수집합니다.

질문: 클라이언트가 Fiber 측에서 WebSockets 서비스를 시작하기 위해 Fiber 서비스에 HTTP GET 요청을 하는 경우 클라이언트 로직은 어떻게 HTTP 클라이언트를 WebSockets 클라이언트로 전환합니까?

직관적으로 우리는 어딘가에 소켓이 있고 HTTP 클라이언트를 WebSockets 클라이언트로 업그레이드하는 것은 단지 HTTP 클라이언트에 올바른 "접착제"를 추가하는 문제일 뿐입니다. 그러나 Java WebSockets와 같은 고정 솔루션을 사용하는 관점에서 보면 HTTP 클라이언트를 WebSockets 클라이언트로 전환하는 방법이 전혀 명확하지 않습니다.

해결 방법

여기서 Golang/Fiber는 우연입니다. 정의에 따라 WebSockets 프로토콜은 핸드셰이크 중에 서비스 끝점에 대한 HTTP GET 요청을 시작하고 전송 프로토콜은 HTTP에서 WebSockets로 업그레이드됩니다. 이 업그레이드의 일부는 요청과 응답 모두의 HTTP 헤더가 수정된다는 것입니다. 아래의 채팅 관련 예를 참조하세요.

업그레이드된 요청 헤더:

으아악

서버 응답:

으아악

이러한 예는 WebSocket에 대한 기사에서 가져온 것입니다.

위 내용은 Golang Fiber의 WebSocket 클라이언트의 경우 HTTP 클라이언트/연결을 WebSocket으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제