ホームページ >バックエンド開発 >Golang >Golang サーバーから各ユーザーに送信されるイベント

Golang サーバーから各ユーザーに送信されるイベント

PHPz
PHPz転載
2024-02-06 11:39:141122ブラウズ

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

質問内容

Goはしばらく使っていますが、SSEは使ったことがありません。問題があります。特定のユーザー (接続) にのみ送信されるサーバー送信イベントの実例を誰かが提供してもらえますか?

認証にゴリラ セッションを使用しており、UserID を使用して接続を分離したいと考えています。

それとも、Ajax 経由で 5 秒ポーリングを使用する必要がありますか?

###どうもありがとうございます###

私が見つけて試したことは次のとおりです:

    https://gist.github.com/ismasan/3fb75381cd2deb6bfa9c 個々のユーザーには送信されず、接続が閉じられても go 関数は停止しません
  1. https://github.com/striversity/gotr/blob/master/010-server-sent-event-part-2/main.go これはまさに私が必要とするものですが、接続が削除されると。そのため、ブラウザを閉じてプライベート ウィンドウで開くと、まったく機能しなくなります。また、上で述べたように、Go ルーチンは継続します。
正解

接続しているユーザーにメッセージを配布するための「ブローカー」を作成します:
リーリー

プロキシを使用してパッケージ レベルで変数を宣言します:

リーリー

プロキシを使用した sse エンドポイントの書き込み:

リーリー

broker.sendtouser を呼び出すコードをアプリケーションに追加します。

以上がGolang サーバーから各ユーザーに送信されるイベントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。