mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 16:00:25 +08:00 
			
		
		
		
	TCP和UDP也支持DAU统计
This commit is contained in:
		@@ -145,6 +145,12 @@ func (this *TCPListener) handleConn(server *serverconfigs.ServerConfig, conn net
 | 
				
			|||||||
		stats.SharedTrafficStatManager.Add(server.UserId, server.Id, "", 0, 0, 1, 0, 0, 0, 0, server.ShouldCheckTrafficLimit(), server.PlanId())
 | 
							stats.SharedTrafficStatManager.Add(server.UserId, server.Id, "", 0, 0, 1, 0, 0, 0, 0, server.ShouldCheckTrafficLimit(), server.PlanId())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// DAU统计
 | 
				
			||||||
 | 
						clientIP, _, parseErr := net.SplitHostPort(conn.RemoteAddr().String())
 | 
				
			||||||
 | 
						if parseErr == nil {
 | 
				
			||||||
 | 
							stats.SharedDAUManager.AddIP(server.Id, clientIP)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	originConn, err := this.connectOrigin(server.Id, serverName, server.ReverseProxy, conn.RemoteAddr().String())
 | 
						originConn, err := this.connectOrigin(server.Id, serverName, server.ReverseProxy, conn.RemoteAddr().String())
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		_ = conn.Close()
 | 
							_ = conn.Close()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -359,9 +359,9 @@ type UDPConn struct {
 | 
				
			|||||||
	isClosed      bool
 | 
						isClosed      bool
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewUDPConn(server *serverconfigs.ServerConfig, addr net.Addr, proxyListener UDPPacketListener, cm any, serverConn *net.UDPConn) *UDPConn {
 | 
					func NewUDPConn(server *serverconfigs.ServerConfig, clientAddr net.Addr, proxyListener UDPPacketListener, cm any, serverConn *net.UDPConn) *UDPConn {
 | 
				
			||||||
	var conn = &UDPConn{
 | 
						var conn = &UDPConn{
 | 
				
			||||||
		addr:          addr,
 | 
							addr:          clientAddr,
 | 
				
			||||||
		proxyListener: proxyListener,
 | 
							proxyListener: proxyListener,
 | 
				
			||||||
		serverConn:    serverConn,
 | 
							serverConn:    serverConn,
 | 
				
			||||||
		activatedAt:   time.Now().Unix(),
 | 
							activatedAt:   time.Now().Unix(),
 | 
				
			||||||
@@ -371,6 +371,12 @@ func NewUDPConn(server *serverconfigs.ServerConfig, addr net.Addr, proxyListener
 | 
				
			|||||||
	// 统计
 | 
						// 统计
 | 
				
			||||||
	if server != nil {
 | 
						if server != nil {
 | 
				
			||||||
		stats.SharedTrafficStatManager.Add(server.UserId, server.Id, "", 0, 0, 1, 0, 0, 0, 0, server.ShouldCheckTrafficLimit(), server.PlanId())
 | 
							stats.SharedTrafficStatManager.Add(server.UserId, server.Id, "", 0, 0, 1, 0, 0, 0, 0, server.ShouldCheckTrafficLimit(), server.PlanId())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// DAU统计
 | 
				
			||||||
 | 
							clientIP, _, parseErr := net.SplitHostPort(clientAddr.String())
 | 
				
			||||||
 | 
							if parseErr == nil {
 | 
				
			||||||
 | 
								stats.SharedDAUManager.AddIP(server.Id, clientIP)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 处理ControlMessage
 | 
						// 处理ControlMessage
 | 
				
			||||||
@@ -392,7 +398,7 @@ func NewUDPConn(server *serverconfigs.ServerConfig, addr net.Addr, proxyListener
 | 
				
			|||||||
			if n > 0 {
 | 
								if n > 0 {
 | 
				
			||||||
				conn.activatedAt = time.Now().Unix()
 | 
									conn.activatedAt = time.Now().Unix()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				_, writingErr := proxyListener.WriteTo(buffer[:n], cm, addr)
 | 
									_, writingErr := proxyListener.WriteTo(buffer[:n], cm, clientAddr)
 | 
				
			||||||
				if writingErr != nil {
 | 
									if writingErr != nil {
 | 
				
			||||||
					conn.isOk = false
 | 
										conn.isOk = false
 | 
				
			||||||
					break
 | 
										break
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user