 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- type HTTPRequest
- type HTTPResponse
- type Manager
- func (m *Manager) Handler() http.Handler
- func (m *Manager) NonStream(ctx context.Context, provider string, req *HTTPRequest) (*HTTPResponse, error)
- func (m *Manager) Path() string
- func (m *Manager) Send(ctx context.Context, provider string, msg Message) (<-chan Message, error)
- func (m *Manager) Stop(_ context.Context) error
- func (m *Manager) Stream(ctx context.Context, provider string, req *HTTPRequest) (<-chan StreamEvent, error)
 
- type Message
- type Options
- type StreamEvent
Constants ¶
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" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HTTPRequest ¶
HTTPRequest represents a proxied HTTP request delivered to websocket clients.
type HTTPResponse ¶
HTTPResponse captures the response relayed back from websocket clients.
type Manager ¶
type Manager struct {
	// contains filtered or unexported fields
}
    Manager exposes a websocket endpoint that proxies Gemini requests to connected clients.
func NewManager ¶
NewManager builds a websocket relay manager with the supplied options.
func (*Manager) Handler ¶
Handler exposes an http.Handler that upgrades connections to websocket sessions.
func (*Manager) NonStream ¶
func (m *Manager) NonStream(ctx context.Context, provider string, req *HTTPRequest) (*HTTPResponse, error)
NonStream executes a non-streaming HTTP request using the websocket provider.
func (*Manager) Send ¶
Send forwards the message to the specific provider connection and returns a channel yielding response messages.
func (*Manager) Stream ¶
func (m *Manager) Stream(ctx context.Context, provider string, req *HTTPRequest) (<-chan StreamEvent, error)
Stream executes a streaming HTTP request and returns channel with stream events.
type Message ¶
type Message struct {
	ID      string         `json:"id"`
	Type    string         `json:"type"`
	Payload map[string]any `json:"payload,omitempty"`
}
    Message represents the JSON payload exchanged with websocket clients.