split session tracker helpers

This commit is contained in:
ShukeBta
2026-06-27 03:47:02 +08:00
parent 0762f9fb5c
commit ccfa50e3a9
4 changed files with 225 additions and 206 deletions
+37
View File
@@ -0,0 +1,37 @@
package service
import "strings"
func fallbackSessionDeviceID(deviceName, client, remoteEndPoint string) string {
parts := []string{strings.TrimSpace(deviceName), strings.TrimSpace(client), strings.TrimSpace(remoteEndPoint)}
joined := strings.Trim(strings.Join(parts, "|"), "|")
if joined == "" {
joined = "unknown"
}
return "rt-" + fingerprint(client, joined)
}
func sessionDeviceKey(sess RealtimeSession) string {
return realtimeSessionTerminalKey(sess.DeviceID, sess.DeviceName, sess.Client, sess.RemoteEndPoint)
}
func realtimeSessionTerminalKey(deviceID, deviceName, client, remoteEndPoint string) string {
deviceName = strings.TrimSpace(deviceName)
if deviceName != "" {
return "fp-" + fingerprint(client, deviceName)
}
deviceID = strings.TrimSpace(deviceID)
if deviceID != "" {
return deviceID
}
return fallbackSessionDeviceID(deviceName, client, remoteEndPoint)
}
func firstNonEmptyString(values ...string) string {
for _, value := range values {
if strings.TrimSpace(value) != "" {
return strings.TrimSpace(value)
}
}
return ""
}