/
githubmirror
/
photoprism
Обзор
Документация
Войти
/
githubmirror
/
photoprism
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
internal/api/websocket.go
45 строк
1 KB
Michael Mayer
Config: Gate node roles by edition and align tests/lint
26 фев 2026, 17:37
26 фев 2026, 17:37
92d222a
Код
Авторство
О чём код?
package api import ( "net/http" "sync" "time" "github.com/gorilla/websocket" "github.com/photoprism/photoprism/internal/auth/acl" "github.com/photoprism/photoprism/internal/entity" ) // wsTimeout specifies the timeout duration for WebSocket connections. var wsTimeout = 90 * time.Second // wsSubPerm specifies the permissions required to subscribe to a channel. var wsSubscribePerms = acl.Permissions{acl.ActionSubscribe} // wsAuth maps connection IDs to specific users and session IDs. var wsAuth = struct { sid map[string]string rid map[string]string user map[string]entity.User mutex sync.RWMutex }{ sid: make(map[string]string), rid: make(map[string]string), user: make(map[string]entity.User), } // wsConnection upgrades the HTTP server connection to the WebSocket protocol. var wsConnection = websocket.Upgrader{ CheckOrigin: func(r *http.Request) bool { return true }, } // wsClient represents information about the WebSocket client. type wsClient struct { AuthToken string `json:"session"` //nolint:gosec // API payload field used for websocket auth handshake. CssUri string `json:"css"` JsUri string `json:"js"` Version string `json:"version"` }