egin

package
v1.1.6 Latest Latest
Warning

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

Go to latest
Published: Nov 11, 2022 License: MIT Imports: 56 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// HeaderAcceptEncoding ...
	HeaderAcceptEncoding = "Accept-Encoding"
	// HeaderContentType ...
	HeaderContentType = "Content-Type"
	// HeaderGRPCPROXYError ...
	HeaderGRPCPROXYError = "GRPC-Proxy-Error"

	// MIMEApplicationJSON ...
	MIMEApplicationJSON = "application/json"
	// MIMEApplicationJSONCharsetUTF8 ...
	MIMEApplicationJSONCharsetUTF8 = MIMEApplicationJSON + "; " + charsetUTF8
	// MIMEApplicationProtobuf ...
	MIMEApplicationProtobuf = "application/protobuf"
)
View Source
const PackageName = "server.egin"

PackageName 包名

Variables

This section is empty.

Functions

func GRPCProxy

func GRPCProxy(h interface{}) gin.HandlerFunc

GRPCProxy experimental

Types

type Component

type Component struct {
	*gin.Engine

	Server *http.Server
	// contains filtered or unexported fields
}

Component ...

func (*Component) BuildWebsocket

func (c *Component) BuildWebsocket(opts ...WebSocketOption) *WebSocket

BuildWebsocket ..

func (*Component) GetEmbedWrapper

func (c *Component) GetEmbedWrapper() *EmbedWrapper

GetEmbedWrapper http的文件系统

func (*Component) GracefulStop

func (c *Component) GracefulStop(ctx context.Context) error

GracefulStop implements server.Component interface it will stop gin server gracefully

func (*Component) HTTPEmbedFs

func (c *Component) HTTPEmbedFs() http.FileSystem

HTTPEmbedFs http的文件系统

func (*Component) Info

func (c *Component) Info() *server.ServiceInfo

Info returns server info, used by governor and consumer balancer

func (*Component) Init

func (c *Component) Init() error

Init 初始化

func (*Component) Listener

func (c *Component) Listener() net.Listener

Listener listener信息

func (*Component) Name

func (c *Component) Name() string

Name 配置名称

func (*Component) PackageName

func (c *Component) PackageName() string

PackageName 包名

func (*Component) RegisterRouteComment

func (c *Component) RegisterRouteComment(method, path, comment string)

RegisterRouteComment 注册路由注释

func (*Component) Start

func (c *Component) Start() error

Start implements server.Component interface.

func (*Component) Stop

func (c *Component) Stop() error

Stop implements server.Component interface it will terminate gin server immediately

func (*Component) Upgrade

func (c *Component) Upgrade(pattern string, ws *WebSocket, handler WebSocketFunc) gin.IRoutes

Upgrade protocol to WebSocket

type Config

type Config struct {
	Host                    string // IP地址,默认0.0.0.0
	Port                    int    // PORT端口,默认9001
	Mode                    string // gin的模式,默认是release模式
	Network                 string
	ServerReadTimeout       time.Duration // 服务端,用于读取io报文过慢的timeout,通常用于互联网网络收包过慢,如果你的go在最外层,可以使用他,默认不启用。
	ServerReadHeaderTimeout time.Duration // 服务端,用于读取io报文过慢的timeout,通常用于互联网网络收包过慢,如果你的go在最外层,可以使用他,默认不启用。
	ServerWriteTimeout      time.Duration // 服务端,用于读取io报文过慢的timeout,通常用于互联网网络收包过慢,如果你的go在最外层,可以使用他,默认不启用。
	// ServerHTTPTimout        time.Duration //  这个是HTTP包提供的,可以用于IO,或者密集型计算,做timeout处理,有一次goroutine操作,然后没走一些流程,cancel体验不好,暂时先不用
	ContextTimeout                time.Duration // 只能用于IO操作,才能触发,默认不启用
	EnableMetricInterceptor       bool          // 是否开启监控,默认开启
	EnableTraceInterceptor        bool          // 是否开启链路追踪,默认开启
	EnableLocalMainIP             bool          // 自动获取ip地址
	SlowLogThreshold              time.Duration // 服务慢日志,默认500ms
	EnableAccessInterceptor       bool          // 是否开启,记录请求数据
	EnableAccessInterceptorReq    bool          // 是否开启记录请求参数,默认不开启
	EnableAccessInterceptorRes    bool          // 是否开启记录响应参数,默认不开启
	AccessInterceptorReqResFilter string        // AccessInterceptorReq 过滤器,只有符合过滤器的请求才会记录 Req 和 Res
	EnableTrustedCustomHeader     bool          // 是否开启自定义header头,记录数据往链路后传递,默认不开启
	EnableSentinel                bool          // 是否开启限流,默认不开启
	WebsocketHandshakeTimeout     time.Duration // 握手时间
	WebsocketReadBufferSize       int           // WebsocketReadBufferSize
	WebsocketWriteBufferSize      int           // WebsocketWriteBufferSize
	EnableWebsocketCompression    bool          // 是否开通压缩
	EnableWebsocketCheckOrigin    bool          // 是否支持跨域
	EnableTLS                     bool          // 是否进入 https 模式
	TLSCertFile                   string        // https 证书
	TLSKeyFile                    string        // https 私钥
	TLSClientAuth                 string        // https 客户端认证方式默认为 NoClientCert(NoClientCert,RequestClientCert,RequireAnyClientCert,VerifyClientCertIfGiven,RequireAndVerifyClientCert)
	TLSClientCAs                  []string      // https client的ca,当需要双向认证的时候指定可以倒入自签证书
	TrustedPlatform               string        // 需要用户换成自己的CDN名字,获取客户端IP地址
	EmbedPath                     string        // 嵌入embed path数据

	TLSSessionCache tls.ClientSessionCache
	// contains filtered or unexported fields
}

Config HTTP config

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig ...

func (*Config) Address

func (config *Config) Address() string

Address ...

func (*Config) ClientAuthType

func (config *Config) ClientAuthType() tls.ClientAuthType

ClientAuthType 客户端auth类型

type Container

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

Container defines a component instance.

func DefaultContainer

func DefaultContainer() *Container

DefaultContainer returns an default container.

func Load

func Load(key string) *Container

Load parses container configuration from configuration provider, such as a toml file, then use the configuration to construct a component container.

func (*Container) Build

func (c *Container) Build(options ...Option) *Component

Build constructs a specific component from container.

type EmbedWrapper

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

EmbedWrapper 嵌入普通的静态资源的wrapper

func (*EmbedWrapper) Open

func (e *EmbedWrapper) Open(name string) (fs.File, error)

Open 静态资源被访问的核心逻辑

type Option

type Option func(c *Container)

Option overrides a Container's default configuration.

func WithContextTimeout

func WithContextTimeout(timeout time.Duration) Option

WithContextTimeout 设置 context 超时时间

func WithEmbedFs

func WithEmbedFs(fs embed.FS) Option

WithEmbedFs 设置embed fs

func WithHost

func WithHost(host string) Option

WithHost 设置host

func WithLogger

func WithLogger(logger *elog.Component) Option

WithLogger 设置 logger

func WithNetwork

func WithNetwork(network string) Option

WithNetwork 设置network

func WithPort

func WithPort(port int) Option

WithPort 设置port

func WithRecoveryFunc added in v1.1.6

func WithRecoveryFunc(f gin.RecoveryFunc) Option

WithRecoveryFunc 设置 recovery func

func WithSentinelBlockFallback

func WithSentinelBlockFallback(fn func(*gin.Context)) Option

WithSentinelBlockFallback 限流后的返回数据

func WithSentinelResourceExtractor

func WithSentinelResourceExtractor(fn func(*gin.Context) string) Option

WithSentinelResourceExtractor 资源命名方式

func WithServerReadHeaderTimeout

func WithServerReadHeaderTimeout(timeout time.Duration) Option

WithServerReadHeaderTimeout 设置超时时间

func WithServerReadTimeout

func WithServerReadTimeout(timeout time.Duration) Option

WithServerReadTimeout 设置超时时间

func WithServerWriteTimeout

func WithServerWriteTimeout(timeout time.Duration) Option

WithServerWriteTimeout 设置超时时间

func WithTLSSessionCache

func WithTLSSessionCache(tsc tls.ClientSessionCache) Option

WithTLSSessionCache TLS Session 缓存

func WithTrustedPlatform

func WithTrustedPlatform(trustedPlatform string) Option

WithTrustedPlatform 信任的Header头,获取客户端IP地址

type WebSocket

type WebSocket struct {
	*websocket.Upgrader
}

WebSocket ..

func (*WebSocket) Upgrade

func (ws *WebSocket) Upgrade(w http.ResponseWriter, r *http.Request, c *gin.Context, handler WebSocketFunc)

Upgrade get upgrage request

type WebSocketConn

type WebSocketConn struct {
	*websocket.Conn
	GinCtx *gin.Context
}

WebSocketConn ...

type WebSocketFunc

type WebSocketFunc func(*WebSocketConn, error)

WebSocketFunc ..

type WebSocketOption

type WebSocketOption func(*WebSocket)

WebSocketOption ..

Jump to

Keyboard shortcuts

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