teaproxy

package
v0.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2019 License: MIT Imports: 34 Imported by: 18

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LISTENERS = []*Listener{}

所有监听器集合

View Source
var SERVERS = map[string]*teaconfigs.ServerConfig{} // id => server

所有服务

View Source
var SharedClientPool = NewClientPool()

客户端池单例

View Source
var StatusCodeParser func(statusCode int, headers http.Header, respData []byte, parserScript string) (string, error) = nil

状态码筛选

Functions

func AddRequestHook

func AddRequestHook(hook *RequestHook)

添加Hook

func CallRequestAfterHook

func CallRequestAfterHook(req *Request, writer *ResponseWriter) (goNext bool)

执行After Hook

func CallRequestBeforeHook

func CallRequestBeforeHook(req *Request, writer *ResponseWriter) (goNext bool)

执行Before Hook

func FindServer

func FindServer(id string) (server *teaconfigs.ServerConfig, found bool)

查找服务

func Restart

func Restart()

重启服务

func Shutdown

func Shutdown()

关闭服务

func Start

func Start()

启动服务

func Wait

func Wait()

等待服务执行完毕

Types

type ClientPool

type ClientPool struct {
	// contains filtered or unexported fields
}

客户端池

func NewClientPool

func NewClientPool() *ClientPool

获取新对象

func (*ClientPool) Reset

func (this *ClientPool) Reset()

重置

type Listener

type Listener struct {
	// contains filtered or unexported fields
}

监听服务定义

func NewListener

func NewListener(config *teaconfigs.ListenerConfig) *Listener

新监听服务

func (*Listener) Shutdown

func (this *Listener) Shutdown() error

关闭

func (*Listener) Start

func (this *Listener) Start()

启动

type RedirectError

type RedirectError struct {
}

func (*RedirectError) Error

func (this *RedirectError) Error() string

type Request

type Request struct {
	// contains filtered or unexported fields
}

请求定义

func NewRequest

func NewRequest(rawRequest *http.Request) *Request

获取新的请求

func (*Request) CachePolicy

func (this *Request) CachePolicy() *shared.CachePolicy

func (*Request) Format

func (this *Request) Format(source string) string

利用请求参数格式化字符串

func (*Request) IsCacheEnabled

func (this *Request) IsCacheEnabled() bool

判断缓存策略是否有效

func (*Request) IsWatching

func (this *Request) IsWatching() bool

判断是否在监控

func (*Request) SetCacheEnabled

func (this *Request) SetCacheEnabled()

func (*Request) SetCachePolicy

func (this *Request) SetCachePolicy(config *shared.CachePolicy)

func (*Request) SetIsWatching

func (this *Request) SetIsWatching(isWatching bool)

设置监控状态

type RequestHook

type RequestHook struct {
	BeforeRequest func(req *Request, writer *ResponseWriter) (goNext bool)
	AfterRequest  func(req *Request, writer *ResponseWriter) (goNext bool)
}

请求Hook定义

type ResponseWriter

type ResponseWriter struct {
	// contains filtered or unexported fields
}

响应Writer

func NewResponseWriter

func NewResponseWriter(httpResponseWriter http.ResponseWriter) *ResponseWriter

包装对象

func (*ResponseWriter) AddHeaders

func (this *ResponseWriter) AddHeaders(header http.Header)

添加一组Header

func (*ResponseWriter) Body

func (this *ResponseWriter) Body() []byte

读取拷贝的Body数据

func (*ResponseWriter) BodyIsCopying

func (this *ResponseWriter) BodyIsCopying() bool

判断是否在拷贝Body数据

func (*ResponseWriter) Close

func (this *ResponseWriter) Close()

关闭

func (*ResponseWriter) Gzip

func (this *ResponseWriter) Gzip(level uint8, minLength int64)

设置Gzip

func (*ResponseWriter) Header

func (this *ResponseWriter) Header() http.Header

获取Header

func (*ResponseWriter) HeaderData

func (this *ResponseWriter) HeaderData() []byte

读取Header二进制数据

func (*ResponseWriter) Prepare

func (this *ResponseWriter) Prepare(size int64)

准备输出

func (*ResponseWriter) Raw

func (this *ResponseWriter) Raw() http.ResponseWriter

包装前的原始的Writer

func (*ResponseWriter) SentBodyBytes

func (this *ResponseWriter) SentBodyBytes() int64

读取发送的字节数

func (*ResponseWriter) SetBodyCopying

func (this *ResponseWriter) SetBodyCopying(b bool)

设置拷贝Body数据

func (*ResponseWriter) StatusCode

func (this *ResponseWriter) StatusCode() int

读取状态码

func (*ResponseWriter) Write

func (this *ResponseWriter) Write(data []byte) (n int, err error)

写入数据

func (*ResponseWriter) WriteHeader

func (this *ResponseWriter) WriteHeader(statusCode int)

写入状态码

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL