zoox

package module
v1.6.10 Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2023 License: MIT Imports: 41 Imported by: 50

README

Zoox - A Lightweight Web Framework

PkgGoDev Build Status Go Report Card Coverage Status GitHub issues Release

Installation

To install the package, run:

go get github.com/go-zoox/zoox

Getting Started

package main

import "github.com/go-zoox/zoox"

func main() {
	app := zoox.Default()

	app.Get("/", func(ctx *zoox.Context) {
		ctx.Write([]byte("helloworld"))
	})

	app.Run(":8080")
}

License

GoZoox is released under the MIT License.

Documentation

Index

Constants

View Source
const DebugEnv = "GO_ZOOX_DEBUG"

DebugEnv is the environment variable name for debug.

View Source
const HeaderContentType = "Content-Type"

HeaderContentType ...

Variables

View Source
var DefaultGroupsFns = map[string]func(r *RouterGroup){}

DefaultGroupsFns ...

View Source
var DefaultMiddlewares = map[string]func(app *Application){}

DefaultMiddlewares is the default global middleware

View Source
var RequestIDHeader = "X-Request-Id"

RequestIDHeader is the name of the header that contains the request ID.

View Source
var Version = "1.6.10"

Version is the current version of the package.

Functions

func DefaultGroup added in v1.0.16

func DefaultGroup(prefix string, fn func(r *RouterGroup))

DefaultGroup ...

func DefaultMiddleware added in v1.0.16

func DefaultMiddleware(name string, fn func(app *Application))

DefaultMiddleware ...

func GenerateRequestID added in v1.2.1

func GenerateRequestID() string

GenerateRequestID generates a unique request ID.

Types

type Application

type Application struct {
	*RouterGroup

	//
	SecretKey string
	LogLevel  string
	//
	CacheConfig *typing.Config

	//
	Env    *Env
	Logger *logger.Logger

	// TLS Certificate
	TLSCertFile string
	// TLS Private Key
	TLSKeyFile string
	// TLS Ca Certificate
	TLSCaCertFile string
	// contains filtered or unexported fields
}

Application is the handler for all requests.

func New

func New() *Application

New is the constructor of zoox.Application.

func (*Application) Cache added in v1.0.24

func (app *Application) Cache() *Cache

Cache ...

func (*Application) CreateJSONRPC added in v1.2.0

func (app *Application) CreateJSONRPC(path string) jsonrpc.Server[*Context]

CreateJSONRPC creates a new CreateJSONRPC handler.

func (*Application) Cron added in v1.3.3

func (app *Application) Cron() *Cron

Cron ...

func (*Application) Debug added in v1.2.4

func (app *Application) Debug() *Debug

Debug ...

func (*Application) Fallback

func (app *Application) Fallback(h HandlerFunc)

Fallback is the default handler for all requests.

func (*Application) IsProd added in v1.1.0

func (app *Application) IsProd() bool

IsProd returns true if the app is in production mode.

func (*Application) NotFound

func (app *Application) NotFound(h HandlerFunc)

NotFound defines the 404 handler, replaced of built in not found handler.

func (*Application) Queue added in v1.3.3

func (app *Application) Queue() *Queue

Queue ...

func (*Application) Run

func (app *Application) Run(addr ...string) error

Run defines the method to start the server Example:

	IP:
   default(http://0.0.0.0:8080): Run(":8080")
	 port(http://0.0.0.0:8888): Run(":8888")
	 host+port(http://127.0.0.1:8888): Run("127.0.0.1:8888")

	Unix Domain Socket:
		/tmp/xxx.sock: Run("unix:///tmp/xxx.sock")

func (*Application) ServeHTTP

func (app *Application) ServeHTTP(w http.ResponseWriter, req *http.Request)

func (*Application) SetTemplates

func (app *Application) SetTemplates(dir string, fns ...template.FuncMap)

SetTemplates set the template

type Body added in v1.3.12

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

Body ...

func (*Body) Get added in v1.3.12

func (f *Body) Get(key string, defaultValue ...interface{}) interface{}

Get gets request form with the given name.

type Cache added in v1.0.24

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

Cache ...

func (*Cache) Del added in v1.0.24

func (c *Cache) Del(key string) error

Del ...

func (*Cache) Get added in v1.0.24

func (c *Cache) Get(key string, value interface{}) error

Get ...

func (*Cache) Set added in v1.0.24

func (c *Cache) Set(key string, value interface{}, ttl time.Duration) error

Set ...

type Context

type Context struct {
	// origin objects
	Writer  ResponseWriter
	Request *http.Request
	// request
	Method string
	Path   string

	// response
	StatusCode int

	//
	App *Application
	//
	Logger *logger.Logger
	// contains filtered or unexported fields
}

Context is the request context

func (*Context) AcceptHTML added in v1.3.12

func (ctx *Context) AcceptHTML() bool

AcceptHTML returns true if the request accepts html.

func (*Context) AcceptJSON added in v1.0.19

func (ctx *Context) AcceptJSON() bool

AcceptJSON returns true if the request accepts json.

func (*Context) AddHeader added in v1.0.6

func (ctx *Context) AddHeader(key string, value string)

AddHeader adds a header to the response.

func (*Context) Authorization added in v1.3.16

func (ctx *Context) Authorization() string

Authorization returns the authorization header for auth.

func (*Context) BasicAuth added in v1.0.1

func (ctx *Context) BasicAuth() (username string, password string, ok bool)

BasicAuth returns the user/password pair for Basic Authentication.

func (*Context) BearerToken added in v1.3.16

func (ctx *Context) BearerToken() (token string, ok bool)

BearerToken returns the token for bearer authentication.

func (*Context) BindForm added in v1.0.1

func (ctx *Context) BindForm(obj interface{}) error

BindForm binds the query into the given struct.

func (*Context) BindHeader added in v1.0.1

func (ctx *Context) BindHeader(obj interface{}) error

BindHeader binds the header into the given struct.

func (*Context) BindJSON added in v1.0.1

func (ctx *Context) BindJSON(obj interface{}) error

BindJSON binds the request body into the given struct.

func (*Context) BindParams added in v1.0.1

func (ctx *Context) BindParams(obj interface{}) error

BindParams binds the params into the given struct.

func (*Context) BindQuery added in v1.0.1

func (ctx *Context) BindQuery(obj interface{}) error

BindQuery binds the query into the given struct.

func (*Context) BindYAML added in v1.0.1

func (ctx *Context) BindYAML(obj interface{}) error

BindYAML binds the request body into the given struct.

func (*Context) Bodies added in v1.0.1

func (ctx *Context) Bodies() map[string]any

Bodies gets all bodies.

func (*Context) Body added in v1.3.12

func (ctx *Context) Body() *Body

Body returns the request body.

func (*Context) Cache added in v1.0.24

func (ctx *Context) Cache() *Cache

Cache returns the cache of the application.

func (*Context) Cookie added in v1.0.1

func (ctx *Context) Cookie() *Cookie

Cookie returns the cookie of the request.

func (*Context) Cookies added in v1.0.1

func (ctx *Context) Cookies() map[string]string

Cookies gets all cookies.

func (*Context) Cron added in v1.3.3

func (ctx *Context) Cron() *Cron

Cron returns the cache of the application.

func (*Context) Data added in v1.2.19

func (ctx *Context) Data(status int, contentType string, data []byte)

Data writes some data into the body stream and updates the HTTP code. Align to gin framework.

func (*Context) Debug added in v1.2.4

func (ctx *Context) Debug() *Debug

Debug returns the debug of the app.

func (*Context) Env added in v1.0.17

func (ctx *Context) Env() *Env

Env returns the env of the

func (*Context) Error

func (ctx *Context) Error(status int, message string)

Error writes the given error to the response. Use for system errors

  1. Internal server error
  2. Not found

func (*Context) Fail

func (ctx *Context) Fail(err error, code int, message string, status ...int)

Fail writes the given error with code-message-result specification to the response.

func (*Context) FailWithError added in v1.1.0

func (ctx *Context) FailWithError(err HTTPError)

FailWithError writes the given error with code-message-result specification to the response.

func (*Context) Fetch added in v1.3.1

func (ctx *Context) Fetch() *fetch.Fetch

Fetch is the context request utils, based on go-zoox/fetch.

func (*Context) File added in v1.0.1

func (ctx *Context) File(key string) (multipart.File, *multipart.FileHeader)

File gets the file by key.

func (*Context) Files added in v1.0.1

func (ctx *Context) Files() map[string]*multipart.FileHeader

Files gets all files.

func (*Context) Form added in v1.0.5

func (ctx *Context) Form() *Form

Form returns the form data from POST or PUT request body.

func (*Context) Forms added in v1.0.1

func (ctx *Context) Forms() *safe.Map

Forms gets all forms.

func (*Context) Get added in v1.0.20

func (ctx *Context) Get(key string) string

Get alias for ctx.Header.

func (*Context) GetRawData added in v1.2.19

func (ctx *Context) GetRawData() ([]byte, error)

GetRawData returns stream data. Align to gin framework.

func (*Context) HTML

func (ctx *Context) HTML(status int, html string)

HTML renders the given template with the given data and writes the result

func (*Context) Header added in v1.0.1

func (ctx *Context) Header() http.Header

Header gets the header value by key.

func (*Context) Headers added in v1.0.1

func (ctx *Context) Headers() *safe.Map

Headers gets all headers.

func (*Context) Host added in v1.0.4

func (ctx *Context) Host() string

Host gets the host from HTTP Header. format: `host:port`

func (*Context) Hostname added in v1.5.7

func (ctx *Context) Hostname() string

Hostname gets the hostname from HTTP Header. format: `hostname`

func (*Context) IP added in v1.0.4

func (ctx *Context) IP() string

IP gets the ip from X-Forwarded-For or X-Real-IP or RemoteAddr.

func (*Context) JSON

func (ctx *Context) JSON(status int, obj interface{})

JSON serializes the given struct as JSON into the response body.

func (*Context) Next

func (ctx *Context) Next()

Next runs the next handler in the middleware stack

func (*Context) Origin added in v1.0.20

func (ctx *Context) Origin() string

Origin returns the origin of the request.

func (*Context) Param

func (ctx *Context) Param() *Param

Param returns the named URL parameter value if it exists.

func (*Context) Params

func (ctx *Context) Params() *safe.Map

Params gets all params.

func (*Context) Protocol added in v1.3.16

func (ctx *Context) Protocol() string

Protocol returns the protocol, usally http or https

func (*Context) Queries added in v1.0.1

func (ctx *Context) Queries() *safe.Map

Queries gets all queries.

func (*Context) Query

func (ctx *Context) Query() *Query

Query returns the query string parameter with the given name.

func (*Context) Queue added in v1.3.3

func (ctx *Context) Queue() *Queue

Queue returns the queue of the application.

func (*Context) Redirect

func (ctx *Context) Redirect(url string, status ...int)

Redirect redirects the request to the given URL.

func (*Context) Render

func (ctx *Context) Render(status int, name string, data interface{})

Render renders a template with data and writes the result to the response.

func (*Context) RequestID added in v1.1.2

func (ctx *Context) RequestID() string

RequestID returns the request id of the request.

func (*Context) SaveFile added in v1.0.1

func (ctx *Context) SaveFile(key, path string) error

SaveFile saves the file to the given path.

func (*Context) Session added in v1.0.14

func (ctx *Context) Session() *Session

Session returns the session of the request.

func (*Context) Set added in v1.0.5

func (ctx *Context) Set(key string, value string)

Set alias for ctx.SetHeader.

func (*Context) SetHeader

func (ctx *Context) SetHeader(key string, value string)

SetHeader sets a header in the response.

func (*Context) State added in v1.0.6

func (ctx *Context) State() *State

State returns the state of the

func (*Context) Status

func (ctx *Context) Status(status int)

Status sets the HTTP response status code.

func (*Context) Stream added in v1.0.1

func (ctx *Context) Stream() io.ReadCloser

Stream get the body stream.

func (*Context) String

func (ctx *Context) String(status int, format string, values ...interface{})

String writes the given string to the response.

func (*Context) Success

func (ctx *Context) Success(result interface{})

Success writes the given data with code-message-result specification to the response.

func (*Context) Template added in v1.6.7

func (ctx *Context) Template(status int, name string, data interface{})

Template renders the given template with the given data and writes the result

func (*Context) URL added in v1.0.4

func (ctx *Context) URL() string

URL is http.Request.RequestURI.

func (*Context) User added in v1.1.0

func (ctx *Context) User() *User

User returns the user of the

func (*Context) Write

func (ctx *Context) Write(b []byte)

Write writes the data to the connection.

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

Cookie is a middleware for handling cookie.

func (*Cookie) Del added in v1.0.5

func (c *Cookie) Del(name string)

Del deletes response cookie with the given name.

func (*Cookie) Get added in v1.0.5

func (c *Cookie) Get(name string) string

Get gets request cookie with the given name.

func (*Cookie) Set added in v1.0.5

func (c *Cookie) Set(name string, value string, maxAge time.Duration)

Set sets response cookie with the given name and value.

type Cron added in v1.3.3

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

Cron ...

func (*Cron) AddDailyJob added in v1.3.3

func (c *Cron) AddDailyJob(name string, cmd func() error) (id int, err error)

AddDailyJob adds a schedule job run in every day.

func (*Cron) AddHourlyJob added in v1.3.3

func (c *Cron) AddHourlyJob(name string, cmd func() error) (id int, err error)

AddHourlyJob adds a schedule job run in every hour.

func (*Cron) AddJob added in v1.3.3

func (c *Cron) AddJob(name string, spec string, job func() error) (id int, err error)

AddJob ...

func (*Cron) AddMinutelyJob added in v1.3.3

func (c *Cron) AddMinutelyJob(name string, cmd func() error) (id int, err error)

AddMinutelyJob adds a schedule job run in every minute.

func (*Cron) AddMonthlyJob added in v1.3.3

func (c *Cron) AddMonthlyJob(name string, cmd func() error) (id int, err error)

AddMonthlyJob adds a schedule job run in every month.

func (*Cron) AddSecondlyJob added in v1.3.3

func (c *Cron) AddSecondlyJob(name string, cmd func() error) (id int, err error)

AddSecondlyJob adds a schedule job run in every second.

func (*Cron) AddWeeklyJob added in v1.3.3

func (c *Cron) AddWeeklyJob(name string, cmd func() error) (id int, err error)

AddWeeklyJob adds a schedule job run in every week.

func (*Cron) AddYearlyJob added in v1.3.3

func (c *Cron) AddYearlyJob(name string, cmd func() error) (id int, err error)

AddYearlyJob adds a schedule job run in every year.

func (*Cron) ClearJobs added in v1.3.17

func (c *Cron) ClearJobs() error

ClearJobs clears all jobs.

func (*Cron) RemoveJob added in v1.3.17

func (c *Cron) RemoveJob(id int) error

RemoveJob ...

type Debug added in v1.2.4

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

Debug ...

func (*Debug) Info added in v1.2.4

func (c *Debug) Info(args ...interface{})

Info logs debug info.

type Env added in v1.0.17

type Env struct {
}

Env ...

func (*Env) Get added in v1.0.17

func (e *Env) Get(key string) string

Get ...

type Form added in v1.1.0

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

Form ...

func (*Form) Get added in v1.1.0

func (f *Form) Get(key string, defaultValue ...string) string

Get gets request form with the given name.

type H

type H map[string]interface{}

H is a shortcut for map[string]interface{}

type HTTPError added in v1.1.0

type HTTPError interface {
	Status() int
	Code() int
	Message() string
	Error() string
	Raw() error
}

HTTPError is a custom error type for HTTP errors.

type HandlerFunc

type HandlerFunc func(ctx *Context)

HandlerFunc defines the request handler used by gee

func NotFound

func NotFound() HandlerFunc

NotFound returns a HandlerFunc that replies with a 404 not found

func WrapH

func WrapH(handler http.Handler) HandlerFunc

WrapH wraps a http.Handler to a HandlerFunc

type Middleware added in v1.0.20

type Middleware = HandlerFunc

Middleware defines the signature of the middleware function.

type Param added in v1.1.0

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

Param ...

func (*Param) Get added in v1.1.0

func (q *Param) Get(key string, defaultValue ...string) ZValue

Get gets request param with the given name.

func (*Param) Iterator added in v1.1.0

func (q *Param) Iterator() map[string]string

Iterator ...

type Query added in v1.1.0

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

Query ...

func (*Query) Get added in v1.1.0

func (q *Query) Get(key string, defaultValue ...string) ZValue

Get gets request query with the given name.

type Queue added in v1.3.3

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

Queue is a simple job queue.

func (*Queue) AddJob added in v1.3.3

func (q *Queue) AddJob(job jobqueue.Job) error

AddJob ...

func (*Queue) AddJobFunc added in v1.3.3

func (q *Queue) AddJobFunc(task func(), callback func(status int, err error)) error

AddJobFunc ...

type ResponseWriter added in v1.0.12

type ResponseWriter interface {
	http.ResponseWriter
	http.Hijacker
	http.CloseNotifier
	http.Flusher

	// Status returns the HTTP response status code of the current request.
	Status() int

	// Size returns the number of bytes already written into the response http body.
	// See Written()
	Size() int

	// WriteString writes the string into the response body.
	WriteString(string) (int, error)

	// Written returns true if the response body was already written.
	Written() bool

	// WriteHeaderNow forces to write the http header (status code + headers).
	WriteHeaderNow()

	// Pusher get the http.Pusher for server push
	Pusher() http.Pusher
	// contains filtered or unexported methods
}

ResponseWriter ...

type RouterGroup

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

RouterGroup is a group of routes.

func (*RouterGroup) Any added in v1.0.3

func (g *RouterGroup) Any(path string, handler ...HandlerFunc) *RouterGroup

Any defines all request methods (anyMethods)

func (*RouterGroup) Connect added in v1.5.5

func (g *RouterGroup) Connect(path string, handler ...HandlerFunc) *RouterGroup

Connect defines the method to add CONNECT request

func (*RouterGroup) Delete

func (g *RouterGroup) Delete(path string, handler ...HandlerFunc) *RouterGroup

Delete defines the method to add DELETE request

func (*RouterGroup) Get

func (g *RouterGroup) Get(path string, handler ...HandlerFunc) *RouterGroup

Get defines the method to add GET request

func (*RouterGroup) Group

func (g *RouterGroup) Group(prefix string) *RouterGroup

Group defines a new router group

func (*RouterGroup) Head

func (g *RouterGroup) Head(path string, handler ...HandlerFunc) *RouterGroup

Head defines the method to add HEAD request

func (*RouterGroup) Options added in v1.0.3

func (g *RouterGroup) Options(path string, handler ...HandlerFunc) *RouterGroup

Options defines the method to add OPTIONS request

func (*RouterGroup) Patch

func (g *RouterGroup) Patch(path string, handler ...HandlerFunc) *RouterGroup

Patch defines the method to add PATCH request

func (*RouterGroup) Post

func (g *RouterGroup) Post(path string, handler ...HandlerFunc) *RouterGroup

Post defines the method to add POST request

func (*RouterGroup) Put

func (g *RouterGroup) Put(path string, handler ...HandlerFunc) *RouterGroup

Put defines the method to add PUT request

func (*RouterGroup) Static

func (g *RouterGroup) Static(relativePath string, root string, options ...StaticOptions)

Static defines the method to serve static files

func (*RouterGroup) StaticFS added in v1.0.15

func (g *RouterGroup) StaticFS(relativePath string, fs http.FileSystem)

StaticFS defines the method to serve static files

func (*RouterGroup) Use

func (g *RouterGroup) Use(middlewares ...HandlerFunc)

Use adds a middleware to the group

func (*RouterGroup) WebSocket added in v1.0.28

func (g *RouterGroup) WebSocket(path string, handler WsHandlerFunc) *RouterGroup

WebSocket defines the method to add websocket route

func (*RouterGroup) WebSocketGorilla added in v1.6.7

func (g *RouterGroup) WebSocketGorilla(path string, handler WsGorillaHandlerFunc) *RouterGroup

WebSocketGorilla defines the method to add websocket route

type Session added in v1.0.14

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

Session is the http session based on cookie.

func (*Session) Del added in v1.0.14

func (s *Session) Del(key string)

Del deletes the value by key.

func (*Session) Get added in v1.0.14

func (s *Session) Get(key string) string

Get gets the value by key.

func (*Session) Set added in v1.0.14

func (s *Session) Set(key string, value string)

Set sets the value by key.

type State added in v1.1.0

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

State is the state for request context.

func (*State) Get added in v1.1.0

func (s *State) Get(key string) interface{}

Get gets the value from context state with the given key.

func (*State) Set added in v1.1.0

func (s *State) Set(key string, value interface{})

Set sets the value to context state with the given key.

type StaticOptions

type StaticOptions struct {
	Gzip         bool
	Md5          bool
	CacheControl string
	MaxAge       time.Duration
	Index        bool
	Suffix       string
}

StaticOptions is the options for static method

type User added in v1.1.0

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

User is the user for request context.

func (*User) Get added in v1.1.0

func (s *User) Get() interface{}

Get gets user from request context

func (*User) Set added in v1.1.0

func (s *User) Set(user interface{})

Set sets user to request context

type WebSocketClient added in v1.0.28

type WebSocketClient struct {
	WebSocketConn

	ID string

	OnConnect       func()
	OnDisconnect    func()
	OnMessage       func(typ int, msg []byte)
	OnTextMessage   func(msg []byte)
	OnBinaryMessage func(msg []byte)
	OnError         func(err error)
	OnPing          func(message string) error
	OnPong          func(message string) error

	//
	WriteHandler       func(typ int, msg []byte) error
	WriteBinaryHandler func(bytes []byte) error
	WriteTextHandler   func(bytes []byte) error
	// contains filtered or unexported fields
}

WebSocketClient ...

func NewWebSocketClient added in v1.6.3

func NewWebSocketClient(ctx *Context, conn WebSocketConn) *WebSocketClient

NewWebSocketClient creates a new websocket client, can be used for mock.

func (*WebSocketClient) ClosedCode added in v1.6.3

func (c *WebSocketClient) ClosedCode() int

ClosedCode ...

func (*WebSocketClient) ClosedReason added in v1.6.3

func (c *WebSocketClient) ClosedReason() []byte

ClosedReason ...

func (*WebSocketClient) CreateJSONRPC added in v1.2.7

func (c *WebSocketClient) CreateJSONRPC() jsonrpc.Server[any]

CreateJSONRPC ...

func (*WebSocketClient) Disconnect added in v1.0.28

func (c *WebSocketClient) Disconnect() error

Disconnect ...

func (*WebSocketClient) GetGorillaWebsocketConn added in v1.6.7

func (c *WebSocketClient) GetGorillaWebsocketConn() *websocket.Conn

GetGorillaWebsocketConn gets the origin gorilla websocket connection.

func (*WebSocketClient) IsAlive added in v1.6.3

func (c *WebSocketClient) IsAlive() bool

IsAlive ...

func (*WebSocketClient) Pong added in v1.6.3

func (c *WebSocketClient) Pong(message string) error

Pong ...

func (*WebSocketClient) Write added in v1.0.28

func (c *WebSocketClient) Write(typ int, msg []byte) error

Write ...

func (*WebSocketClient) WriteBinary added in v1.0.28

func (c *WebSocketClient) WriteBinary(msg []byte) error

WriteBinary ...

func (*WebSocketClient) WriteJSON added in v1.0.28

func (c *WebSocketClient) WriteJSON(msg interface{}) error

WriteJSON ...

func (*WebSocketClient) WriteText added in v1.0.28

func (c *WebSocketClient) WriteText(msg []byte) error

WriteText ...

type WebSocketCloseError added in v1.5.0

type WebSocketCloseError = websocket.CloseError

WebSocketCloseError is the error on client.

type WebSocketConn added in v1.6.3

type WebSocketConn interface {
	// Subprotocol returns the negotiated protocol for the connection.
	Subprotocol() string
	// Close closes the underlying network connection without sending or waiting
	// for a close message.
	Close() error
	// LocalAddr returns the local network address.
	LocalAddr() net.Addr
	// RemoteAddr returns the remote network address.
	RemoteAddr() net.Addr
	// WriteControl writes a control message with the given deadline. The allowed
	// message types are CloseMessage, PingMessage and PongMessage.
	WriteControl(messageType int, data []byte, deadline time.Time) error
	// NextWriter returns a writer for the next message to send. The writer's Close
	// method flushes the complete message to the network.
	//
	// There can be at most one open writer on a connection. NextWriter closes the
	// previous writer if the application has not already done so.
	//
	// All message types (TextMessage, BinaryMessage, CloseMessage, PingMessage and
	// PongMessage) are supported.
	NextWriter(messageType int) (io.WriteCloser, error)
	// WritePreparedMessage writes prepared message into connection.
	WritePreparedMessage(pm *websocket.PreparedMessage) error
	// WriteMessage is a helper method for getting a writer using NextWriter,
	// writing the message and closing the writer.
	WriteMessage(messageType int, data []byte) error
	// SetWriteDeadline sets the write deadline on the underlying network
	// connection. After a write has timed out, the websocket state is corrupt and
	// all future writes will return an error. A zero value for t means writes will
	// not time out.
	SetWriteDeadline(t time.Time) error
	// NextReader returns the next data message received from the peer. The
	// returned messageType is either TextMessage or BinaryMessage.
	//
	// There can be at most one open reader on a connection. NextReader discards
	// the previous message if the application has not already consumed it.
	//
	// Applications must break out of the application's read loop when this method
	// returns a non-nil error value. Errors returned from this method are
	// permanent. Once this method returns a non-nil error, all subsequent calls to
	// this method return the same error.
	NextReader() (messageType int, r io.Reader, err error)
	// ReadMessage is a helper method for getting a reader using NextReader and
	// reading from that reader to a buffer.
	ReadMessage() (messageType int, p []byte, err error)
	// SetReadDeadline sets the read deadline on the underlying network connection.
	// After a read has timed out, the websocket connection state is corrupt and
	// all future reads will return an error. A zero value for t means reads will
	// not time out.
	SetReadDeadline(t time.Time) error
	// SetReadLimit sets the maximum size in bytes for a message read from the peer. If a
	// message exceeds the limit, the connection sends a close message to the peer
	// and returns ErrReadLimit to the application.
	SetReadLimit(limit int64)
	// CloseHandler returns the current close handler
	CloseHandler() func(code int, text string) error
	// SetCloseHandler sets the handler for close messages received from the peer.
	// The code argument to h is the received close code or CloseNoStatusReceived
	// if the close message is empty. The default close handler sends a close
	// message back to the peer.
	//
	// The handler function is called from the NextReader, ReadMessage and message
	// reader Read methods. The application must read the connection to process
	// close messages as described in the section on Control Messages above.
	//
	// The connection read methods return a CloseError when a close message is
	// received. Most applications should handle close messages as part of their
	// normal error handling. Applications should only set a close handler when the
	// application must perform some action before sending a close message back to
	// the peer.
	SetCloseHandler(h func(code int, text string) error)
	// PingHandler returns the current ping handler
	PingHandler() func(appData string) error
	// SetPingHandler sets the handler for ping messages received from the peer.
	// The appData argument to h is the PING message application data. The default
	// ping handler sends a pong to the peer.
	//
	// The handler function is called from the NextReader, ReadMessage and message
	// reader Read methods. The application must read the connection to process
	// ping messages as described in the section on Control Messages above.
	SetPingHandler(h func(appData string) error)
	// PongHandler returns the current pong handler
	PongHandler() func(appData string) error
	// SetPongHandler sets the handler for pong messages received from the peer.
	// The appData argument to h is the PONG message application data. The default
	// pong handler does nothing.
	//
	// The handler function is called from the NextReader, ReadMessage and message
	// reader Read methods. The application must read the connection to process
	// pong messages as described in the section on Control Messages above.
	SetPongHandler(h func(appData string) error)
	// UnderlyingConn returns the internal net.Conn. This can be used to further
	// modifications to connection specific flags.
	UnderlyingConn() net.Conn
	// EnableWriteCompression enables and disables write compression of
	// subsequent text and binary messages. This function is a noop if
	// compression was not negotiated with the peer.
	EnableWriteCompression(enable bool)
	// SetCompressionLevel sets the flate compression level for subsequent text and
	// binary messages. This function is a noop if compression was not negotiated
	// with the peer. See the compress/flate package for a description of
	// compression levels.
	SetCompressionLevel(level int) error
}

WebSocketConn is the interface from websocket.Conn struct

type WsGorillaHandlerFunc added in v1.6.7

type WsGorillaHandlerFunc func(ctx *Context, client *websocket.Conn)

WsGorillaHandlerFunc defines the websocket handler used by gee

type WsHandlerFunc added in v1.0.28

type WsHandlerFunc func(ctx *Context, client *WebSocketClient)

WsHandlerFunc defines the websocket handler used by gee

type ZValue added in v1.6.9

type ZValue string

ZValue is the value string to cast to new type with spf13/cast.

func (ZValue) ToBool added in v1.6.9

func (s ZValue) ToBool() bool

ToBool ...

func (ZValue) ToDuration added in v1.6.9

func (s ZValue) ToDuration() time.Duration

ToDuration ...

func (ZValue) ToFloat64 added in v1.6.9

func (s ZValue) ToFloat64() float64

ToFloat64 ...

func (ZValue) ToInt added in v1.6.9

func (s ZValue) ToInt() int

ToInt ...

func (ZValue) ToInt64 added in v1.6.9

func (s ZValue) ToInt64() int64

ToInt64 ...

func (ZValue) ToString added in v1.6.9

func (s ZValue) ToString() string

ToString ...

func (ZValue) ToTime added in v1.6.9

func (s ZValue) ToTime() time.Time

ToTime ...

func (ZValue) ToUInt added in v1.6.9

func (s ZValue) ToUInt() uint

ToUInt ...

func (ZValue) ToUint64 added in v1.6.9

func (s ZValue) ToUint64() uint64

ToUint64 ...

Directories

Path Synopsis
rpc

Jump to

Keyboard shortcuts

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