mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
- Introduce Server.AttachWebsocketRoute(path, handler) to mount websocket upgrade handlers on the Gin engine. - Track registered WS paths via wsRoutes with wsRouteMu to prevent duplicate registrations; initialize in NewServer and import sync. - Add Manager.UnregisterExecutor(provider) for clean executor lifecycle management. - Add github.com/gorilla/websocket v1.5.3 dependency and update go.sum. Motivation: enable services to expose WS endpoints through the core server and allow removing auth executors dynamically while avoiding duplicate route setup. No breaking changes.
28 lines
1.0 KiB
Go
28 lines
1.0 KiB
Go
package wsrelay
|
|
|
|
// Message represents the JSON payload exchanged with websocket clients.
|
|
type Message struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
Payload map[string]any `json:"payload,omitempty"`
|
|
}
|
|
|
|
const (
|
|
// MessageTypeHTTPReq identifies an HTTP-style request envelope.
|
|
MessageTypeHTTPReq = "http_request"
|
|
// MessageTypeHTTPResp identifies a non-streaming HTTP response envelope.
|
|
MessageTypeHTTPResp = "http_response"
|
|
// MessageTypeStreamStart marks the beginning of a streaming response.
|
|
MessageTypeStreamStart = "stream_start"
|
|
// MessageTypeStreamChunk carries a streaming response chunk.
|
|
MessageTypeStreamChunk = "stream_chunk"
|
|
// MessageTypeStreamEnd marks the completion of a streaming response.
|
|
MessageTypeStreamEnd = "stream_end"
|
|
// MessageTypeError carries an error response.
|
|
MessageTypeError = "error"
|
|
// MessageTypePing represents ping messages from clients.
|
|
MessageTypePing = "ping"
|
|
// MessageTypePong represents pong responses back to clients.
|
|
MessageTypePong = "pong"
|
|
)
|