> 백엔드 개발 > Golang > Golang 서버가 각 사용자에게 보내는 이벤트

Golang 서버가 각 사용자에게 보내는 이벤트

PHPz
풀어 주다: 2024-02-06 11:39:14
앞으로
1101명이 탐색했습니다.

Golang 服务器向每个用户发送的事件

질문내용

저는 한동안 Go를 사용해왔지만 SSE는 한번도 사용해본 적이 없습니다. 문제가 있습니다. 특정 사용자(연결)에게만 전송되는 서버 전송 이벤트의 실제 예제를 누군가 제공할 수 있습니까?

인증을 위해 gorilla - 세션을 사용하고 있는데 UserID를 사용하여 연결을 분리하고 싶습니다.

아니면 Ajax를 통해 5초 폴링을 사용해야 하나요?

정말 감사합니다

내가 발견하고 시도한 것은 다음과 같습니다.

  1. https://gist.github.com/ismasan/3fb75381cd2deb6bfa9c 개별 사용자에게 전송되지 않으며 연결이 종료되어도 go func는 멈추지 않습니다

  2. https://github.com/striversity/gotr/blob/master/010-server-sent-event-part-2/main.go 이것이 바로 나에게 필요한 것이지만 일단 연결이 삭제되면. 그래서 이제는 개인 창에서 브라우저를 닫았다가 열면 전혀 작동하지 않습니다. 또한 위에서 언급한 것처럼 Go 루틴이 계속됩니다.


정답


"브로커"를 만들어 연결된 사용자에게 메시지를 배포하세요.

으아악

프록시를 사용하여 패키지 수준에서 변수를 선언합니다.

으아악

프록시를 사용하여 sse 엔드포인트 쓰기:

으아악

broker.sendtouser를 호출하려면 애플리케이션에 코드를 추가하세요.

위 내용은 Golang 서버가 각 사용자에게 보내는 이벤트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿