>백엔드 개발 >Golang >x/net 라이브러리 trowing 403을 사용한 웹소켓 서버 구현

x/net 라이브러리 trowing 403을 사용한 웹소켓 서버 구현

WBOY
WBOY앞으로
2024-02-13 17:03:08947검색

使用 x/net 库 trowing 403 的 Websocket 服务器实现

PHP Editor Banana는 x/net 라이브러리를 사용하여 403 오류를 발생시키는 Websocket 서버를 구현하는 방법을 소개합니다. Websocket은 클라이언트와 서버 사이에 지속적인 연결을 설정하는 통신 프로토콜이며, 403 오류는 서버가 클라이언트의 요청을 거부했음을 의미합니다. x/net 라이브러리를 사용하면 Websocket 서버를 쉽게 생성하고 필요할 때 403 오류를 발생시켜 요청을 거부할 수 있습니다. 이 방법은 간단하고 효과적이며 요청을 승인하거나 액세스를 제한해야 하는 시나리오에 적합합니다.

질문 내용

x/net/websocket표준 라이브러리를 사용하여 웹소켓 서버를 구현하려고 합니다.

지금까지 제가 시도한 내용은 다음과 같습니다.

으아악

여러 ws 클라이언트를 사용하여 ws://localhost:3000/ws 时,我总是收到相同的错误:403-Forbidden에 연결해 보세요. 공식 문서의 예제를 시도해 보았지만 여전히 이해가 됩니다. 나는 분명한 것을 놓치고 있습니까? 기본 포트 차단이나 그와 유사한 것 같은가요?

미리 감사드립니다.

편집: 문제를 재현하려면 다른 포트를 사용해야 할 수도 있습니다. 내 예에서 3000를 사용하면 프로그램을 사용할 수 없는 경우 프로그램 실행이 중단됩니다.

편집 2: websocat과 같은 클라이언트를 사용하고 websocat 'ws://localhost:3000/ws'를 실행하여 서버에 연결을 시도할 수 있습니다.

해결 방법

포기했지만 좋은 통찰력을 얻었습니다. 당신이 나와 같고 Anthony GG의 Walkthrough of Creating a Websocket Server on Scratch를 따르고 있다면 하지 마세요. 비디오는 오래되었으며 비디오 제작 방법에 대한 좋은 직관을 제공하지만 고릴라의 웹소켓 라이브러리를 사용하여 배우는 것이 가장 좋습니다(부끄럽지 않습니다).

으아악

또한 gorilla/mux를 사용하여 경로 매개변수를 사용합니다(http 핸들러가 왜 할 수 없는지 잘 모르겠습니다). 내가 어떻게 추가했는지 주목하세요 http.Handle 更改为 mux.Router.HandleFunc. @Cerise 사용자가 댓글에서 지적했듯이 x/net/websocket 包不在标准库中,但仅添加 Origin 패키지는 표준 라이브러리에 없지만 Origin 헤더를 추가하는 것만으로는 원래 문제가 해결되지 않았습니다.

이렇게 하면 저와 같은 다른 사람들이 Go를 배우면서 겪게 되는 어려움이 줄어들기를 바랍니다.

위 내용은 x/net 라이브러리 trowing 403을 사용한 웹소켓 서버 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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