Documentation
¶
Overview ¶
Package server 把 relay、channel 与 plugin 装配成一个可监听的 HTTP 服务, 对外暴露四种方言的端点。
装配规则只有一条:client 方言与渠道方言相同时按字节透传,不同时经 relay 转换。 插件在四个时机介入,插件失败不影响转发可用性。
Index ¶
Constants ¶
View Source
const SessionHeaderName = "X-TokenMP-Session"
SessionHeaderName 是客户端声明会话标识的请求头。
同一段会话的连续请求带上同一个值,core 会把它们粘到同一个上游渠道上,让上游 的提示缓存有机会命中。这个头只在本进程内使用,不会转发给上游。
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Options ¶
type Options struct {
// Config 是配置,必填。
Config *config.Config
// Channels 是渠道客户端集合,必填。
Channels *channel.Set
// Plugins 是插件集合,为 nil 时视为没有插件。
Plugins *plugin.Store
// Engine 是转换内核,为 nil 时按配置构造。
Engine *relay.Engine
// Logger 是日志入口,为 nil 时丢弃日志。
Logger *slog.Logger
// Now 返回当前时间,为 nil 时用 time.Now。
Now func() time.Time
// MaxBodyBytes 是单个请求体的上限,为 0 时用 config.DefaultMaxBodyBytes。
MaxBodyBytes int64
}
Options 是服务的装配参数。
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server 是一个转发服务。
Click to show internal directories.
Click to hide internal directories.