2
很久以前,我用Golang建了一个网站,现在我想跟踪在线用户。跟踪Golang的在线用户
我想在没有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)
}
。 。 。
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和保存。
它是好的和正确的方式?
感谢您的完美解释,如何为每个未登录我网站的用户设置独家ID?也许很多用户使用单个IP地址,远程端口太多。你可以帮我吗 ? – ahmdrz
不是一个真正的大问题(这是我提到的轻微计数),但是您可以将用户代理添加到散列id中,或者生成随机令牌并将其放入cookie中,但这需要cookie存储以及每个请求的读取/写入。将添加到示例。 –
伟大的人!非常感谢你,哈希用户代理是特殊的哈希。 – ahmdrz