昔、ゴランと一緒にウェブサイトを構築しましたが、現在オンラインユーザーを追跡したいと考えています。ゴランのオンラインユーザーを追跡する
私はRedisとSessionIDを使用しないとこれを行う必要があります。
私の仕事にはどのような方法が良いですか?
type Tracker struct {
http.Handler
}
func NewManager(handler http.Handler) *Tracker {
return &Tracker{Handler: handler}
}
func (h *Tracker) ServeHTTP(w http.ResponseWriter, r *http.Request) {
log.Println(r.RemoteAddr)
h.Handler.ServeHTTP(w,r)
}
:
は、私は、グローバルハンドラを書きました。 。 。クライアントにセッションIDを追加し、サーバーにマップに保存し、オンラインユーザーをカウントし、そこに次
srv := &http.Server{
Handler: newTracker(e),
Addr: "127.0.0.1" + port,
WriteTimeout: 15 * time.Second,
ReadTimeout: 15 * time.Second,
}
log.Fatal(srv.ListenAndServe())
私は私が行うことができます仕事の一つだと思います。
いいですか?
あなたの完璧な説明をいただきありがとうございます。私のウェブサイトでサインインしていないユーザーごとに排他的なIDを設定するにはどうすればよいですか?おそらく、多くのユーザーが単一のIPアドレスを使用し、リモートポートが多すぎます。手伝って頂けますか ? – ahmdrz
本当に大きな問題ではありませんが(これは私が言及したやや少数ですが)、idのハッシュにユーザーエージェントを追加するか、ランダムトークンを生成してクッキーに入れることができますが、 。例に追加します。 –
偉大な男!ありがとうございます、ハッシュされたユーザーエージェントは特別なハッシュです。 – ahmdrz