>  기사  >  백엔드 개발  >  소켓 서버를 시작하면 gRPC/http 클라이언트 서버 통신이 방해됩니다. Golang

소켓 서버를 시작하면 gRPC/http 클라이언트 서버 통신이 방해됩니다. Golang

PHPz
PHPz앞으로
2024-02-05 23:30:071262검색

启动套接字服务器会干扰 gRPC/http 客户端服务器通信 Golang

질문 내용

저는 이 튜토리얼을 기반으로 한 서버를 가지고 있습니다. 추가 변경 사항을 적용한 후에는 정상적으로 작동했습니다. 하지만 이제 socket.io ,它现在遇到了一些问题。在测试我添加的 socket.io 코드를 추가해 보니 클라이언트 측 코드(엔드포인트)가 서버 측 코드(데이터베이스 쿼리, 처리)를 호출하는 메커니즘에 영향을 미치는 것 같습니다. 단말에 엔드포인트 호출 로그가 나타나면 서버의 클라이언트 측에 호출이 도달하지만 서버 측에는 호출이 되지 않는 것 같습니다.

소켓 서버의 코드는 다음과 같습니다.

으아아아

// main.go 서버측

으아아아

// main.go 클라이언트

으아아아

전체 클라이언트 및 서버 코드를 보려면 위에 링크한 튜토리얼을 확인하세요. startsocket() 전화하지 않으면 모든 것이 잘됩니다.

API의 엔드포인트를 호출할 때 서버측 코드를 호출하는 코드에서 발생하는 다음 오류가 발생합니다.

으아아아

코드는 다음과 같습니다.

으아아아

error2는 API 호출이 반환하는 것입니다.


정답


이 코드 줄은 차단되어 있으며 StartSocket() 함수는 절대 반환하지 않습니다.

fmt.Print(http.ListenAndServe(":8000", nil))

테스트를 위해 로그를 추가하면 로그 메시지가 인쇄되지 않습니다.

별도의 비차단 고루틴에서 실행해야 합니다 StartSocket().

P.S. 예를 들어 이 줄은 log.Fatal(http.ListenAndServe(":8000", nil))입니다. 코드에서 오류가 발생했습니다.

위 내용은 소켓 서버를 시작하면 gRPC/http 클라이언트 서버 통신이 방해됩니다. Golang의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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