>  기사  >  백엔드 개발  >  Go에서 서버 측 웹소켓을 비차단 방식으로 수신하는 방법

Go에서 서버 측 웹소켓을 비차단 방식으로 수신하는 방법

PHPz
PHPz앞으로
2024-02-08 20:45:09403검색

如何在 Go 中非阻塞地监听服务器端 websocket

질문 내용

저는 https://pkg.go.dev/golang.org/x/net/websocket을 사용하여 서버측 웹소켓을 생성합니다. 이를 통한 모든 통신은 json 형식입니다. 따라서 내 코드에는 다음이 포함됩니다.

으아악

그러나 이는 클라이언트가 연결을 닫을 때까지 차단됩니다. 나는 이 websocket 패키지가 컨텍스트보다 앞선다는 것을 알고 있습니다(그리고 최신 websocket 패키지가 있다는 것을 알고 있습니다). 하지만 여전히 비차단 방식으로 들어오는 프레임을 기다릴 수 있는 방법이 정말로 없습니까?


정답


클라이언트가 연결을 닫을 때까지 차단합니다.

동시 차단 작업을 처리하는 가장 쉬운 방법은 고루틴을 제공하는 것입니다. 프로세스나 스레드와 달리 고루틴은 본질적으로 "무료"입니다.

으아악

위 내용은 Go에서 서버 측 웹소켓을 비차단 방식으로 수신하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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