From 7fc75bfeff030aa41799b2208b93fc6dab8b751c Mon Sep 17 00:00:00 2001 From: houseme Date: Sat, 19 Mar 2022 16:16:18 +0800 Subject: [PATCH 1/2] improve ignore and up websocket 1.5.0 --- .gitignore | 1 - cmd/gf/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 5af57e523f0..b928722a543 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,6 @@ pkg/ bin/ cbuild **/.DS_Store -.vscode/ .test/ main gf \ No newline at end of file diff --git a/cmd/gf/go.sum b/cmd/gf/go.sum index 425e8810649..063d630121e 100644 --- a/cmd/gf/go.sum +++ b/cmd/gf/go.sum @@ -40,8 +40,8 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0= github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= diff --git a/go.mod b/go.mod index dfad599ed11..9bde62df0fe 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/fsnotify/fsnotify v1.5.1 github.com/go-redis/redis/v8 v8.11.4 github.com/go-sql-driver/mysql v1.6.0 - github.com/gorilla/websocket v1.4.2 + github.com/gorilla/websocket v1.5.0 github.com/grokify/html-strip-tags-go v0.0.1 github.com/olekukonko/tablewriter v0.0.5 go.opentelemetry.io/otel v1.0.0 diff --git a/go.sum b/go.sum index 9bc6622e1e4..01759c8a521 100644 --- a/go.sum +++ b/go.sum @@ -36,8 +36,8 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0= github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= From 8357b0f6499b7db519883e2b2f8b8dc9fa4c2ed7 Mon Sep 17 00:00:00 2001 From: houseme Date: Sat, 19 Mar 2022 17:58:21 +0800 Subject: [PATCH 2/2] improve comment --- net/ghttp/ghttp.go | 24 +++++------ net/ghttp/ghttp_func.go | 2 +- .../ghttp_middleware_handler_response.go | 1 + net/ghttp/ghttp_middleware_tracing.go | 4 +- net/ghttp/ghttp_request.go | 8 ++-- net/ghttp/ghttp_request_auth.go | 2 +- net/ghttp/ghttp_request_middleware.go | 4 +- net/ghttp/ghttp_request_param.go | 2 +- net/ghttp/ghttp_request_param_ctx.go | 4 +- net/ghttp/ghttp_request_param_file.go | 2 +- net/ghttp/ghttp_request_param_form.go | 2 +- net/ghttp/ghttp_request_param_page.go | 2 +- net/ghttp/ghttp_request_param_param.go | 6 +-- net/ghttp/ghttp_request_param_query.go | 18 ++++---- net/ghttp/ghttp_request_param_request.go | 14 +++--- net/ghttp/ghttp_request_param_router.go | 2 +- net/ghttp/ghttp_response.go | 4 +- net/ghttp/ghttp_response_cors.go | 2 +- net/ghttp/ghttp_response_view.go | 2 +- net/ghttp/ghttp_response_write.go | 22 +++++----- net/ghttp/ghttp_response_writer.go | 2 +- net/ghttp/ghttp_server.go | 16 +++---- net/ghttp/ghttp_server_admin_process.go | 2 +- net/ghttp/ghttp_server_admin_unix.go | 4 +- net/ghttp/ghttp_server_admin_windows.go | 2 +- net/ghttp/ghttp_server_config.go | 8 ++-- net/ghttp/ghttp_server_config_cookie.go | 2 +- net/ghttp/ghttp_server_config_route.go | 2 +- net/ghttp/ghttp_server_config_static.go | 5 +-- net/ghttp/ghttp_server_cookie.go | 8 ++-- net/ghttp/ghttp_server_domain.go | 43 ++++++++++++------- net/ghttp/ghttp_server_graceful.go | 12 +++--- net/ghttp/ghttp_server_handler.go | 12 +++--- net/ghttp/ghttp_server_plugin.go | 4 +- net/ghttp/ghttp_server_router.go | 16 +++---- net/ghttp/ghttp_server_router_group.go | 40 ++++++++--------- net/ghttp/ghttp_server_router_hook.go | 3 ++ net/ghttp/ghttp_server_router_middleware.go | 2 +- net/ghttp/ghttp_server_router_serve.go | 14 +++--- net/ghttp/ghttp_server_service_handler.go | 4 +- net/ghttp/ghttp_server_service_object.go | 10 ++--- net/ghttp/ghttp_server_session.go | 2 +- net/ghttp/ghttp_server_websocket.go | 18 ++++---- 43 files changed, 186 insertions(+), 172 deletions(-) diff --git a/net/ghttp/ghttp.go b/net/ghttp/ghttp.go index 7d049e62fa6..115c6dcb8c1 100644 --- a/net/ghttp/ghttp.go +++ b/net/ghttp/ghttp.go @@ -12,11 +12,11 @@ import ( "reflect" "time" - "github.com/gogf/gf/v2/net/gsvc" "github.com/gorilla/websocket" "github.com/gogf/gf/v2/container/gmap" "github.com/gogf/gf/v2/container/gtype" + "github.com/gogf/gf/v2/net/gsvc" "github.com/gogf/gf/v2/os/gcache" "github.com/gogf/gf/v2/os/gsession" "github.com/gogf/gf/v2/protocol/goai" @@ -31,7 +31,7 @@ type ( servers []*gracefulServer // Underlying http.Server array. serverCount *gtype.Int // Underlying http.Server count. closeChan chan struct{} // Used for underlying server closing event notification. - serveTree map[string]interface{} // The route map tree. + serveTree map[string]interface{} // The route maps tree. serveCache *gcache.Cache // Server caches for internal usage. routesMap map[string][]registeredRouteItem // Route map mainly for route dumps and repeated route checks. statusHandlerMap map[string][]HandlerFunc // Custom status handler map. @@ -70,8 +70,8 @@ type ( // handlerFuncInfo contains the HandlerFunc address and its reflection type. handlerFuncInfo struct { Func HandlerFunc // Handler function address. - Type reflect.Type // Reflect type information for current handler, which is used for extension of handler feature. - Value reflect.Value // Reflect value information for current handler, which is used for extension of handler feature. + Type reflect.Type // Reflect type information for current handler, which is used for extensions of the handler feature. + Value reflect.Value // Reflect value information for current handler, which is used for extensions of the handler feature. } // handlerItem is the registered handler for route handling, @@ -84,7 +84,7 @@ type ( InitFunc HandlerFunc // Initialization function when request enters the object (only available for object register type). ShutFunc HandlerFunc // Shutdown function when request leaves out the object (only available for object register type). Middleware []HandlerFunc // Bound middleware array. - HookName string // Hook type name, only available for hook type. + HookName string // Hook type name, only available for the hook type. Router *Router // Router object. Source string // Registering source file `path:line`. } @@ -141,15 +141,15 @@ const ( ) var ( - // methodsMap stores all supported HTTP method, - // it is used for quick HTTP method searching using map. + // methodsMap stores all supported HTTP method. + // It is used for quick HTTP method searching using map. methodsMap = make(map[string]struct{}) - // serverMapping stores more than one server instances for current process. + // serverMapping stores more than one server instances for current processes. // The key is the name of the server, and the value is its instance. serverMapping = gmap.NewStrAnyMap(true) - // serverRunning marks the running server count. + // serverRunning marks the running server counts. // If there is no successful server running or all servers' shutdown, this value is 0. serverRunning = gtype.NewInt() @@ -160,7 +160,7 @@ var ( return true }, } - // allDoneChan is the event for all server have done its serving and exit. + // allDoneChan is the event for all servers have done its serving and exit. // It is used for process blocking purpose. allDoneChan = make(chan struct{}, 1000) @@ -168,9 +168,9 @@ var ( // The process can only be initialized once. serverProcessInitialized = gtype.NewBool() - // gracefulEnabled is used for graceful reload feature, which is false in default. + // gracefulEnabled is used for a graceful reload feature, which is false in default. gracefulEnabled = false - // defaultValueTags is the struct tag names for default value storing. + // defaultValueTags are the struct tag names for default value storing. defaultValueTags = []string{"d", "default"} ) diff --git a/net/ghttp/ghttp_func.go b/net/ghttp/ghttp_func.go index 40695870145..a261eb88e04 100644 --- a/net/ghttp/ghttp_func.go +++ b/net/ghttp/ghttp_func.go @@ -15,7 +15,7 @@ import ( // BuildParams builds the request string for the http client. The `params` can be type of: // string/[]byte/map/struct/*struct. // -// The optional parameter `noUrlEncode` specifies whether ignore the url encoding for the data. +// The optional parameter `noUrlEncode` specifies whether to ignore the url encoding for the data. func BuildParams(params interface{}, noUrlEncode ...bool) (encodedParamStr string) { return httputil.BuildParams(params, noUrlEncode...) } diff --git a/net/ghttp/ghttp_middleware_handler_response.go b/net/ghttp/ghttp_middleware_handler_response.go index e4b548da315..8fbb9b70587 100644 --- a/net/ghttp/ghttp_middleware_handler_response.go +++ b/net/ghttp/ghttp_middleware_handler_response.go @@ -14,6 +14,7 @@ import ( "github.com/gogf/gf/v2/internal/intlog" ) +// DefaultHandlerResponse is the default implementation of HandlerResponse. type DefaultHandlerResponse struct { Code int `json:"code" dc:"Error code"` Message string `json:"message" dc:"Error message"` diff --git a/net/ghttp/ghttp_middleware_tracing.go b/net/ghttp/ghttp_middleware_tracing.go index 1645a9ba196..1a2bf2095e9 100644 --- a/net/ghttp/ghttp_middleware_tracing.go +++ b/net/ghttp/ghttp_middleware_tracing.go @@ -11,7 +11,6 @@ import ( "fmt" "io/ioutil" - "github.com/gogf/gf/v2/os/gctx" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/codes" @@ -22,6 +21,7 @@ import ( "github.com/gogf/gf/v2/internal/httputil" "github.com/gogf/gf/v2/internal/utils" "github.com/gogf/gf/v2/net/gtrace" + "github.com/gogf/gf/v2/os/gctx" "github.com/gogf/gf/v2/text/gstr" "github.com/gogf/gf/v2/util/gconv" ) @@ -73,7 +73,7 @@ func internalMiddlewareServerTracing(r *Request) { // Inject tracing context. r.SetCtx(ctx) - // If it is now using default trace provider, it then does no complex tracing jobs. + // If it is now using a default trace provider, it then does no complex tracing jobs. if gtrace.IsUsingDefaultProvider() { r.Middleware.Next() return diff --git a/net/ghttp/ghttp_request.go b/net/ghttp/ghttp_request.go index 725b1bb534e..c5d998dbf13 100644 --- a/net/ghttp/ghttp_request.go +++ b/net/ghttp/ghttp_request.go @@ -32,7 +32,7 @@ type Request struct { Response *Response // Corresponding Response of this request. Router *Router // Matched Router for this request. Note that it's not available in HOOK handler. EnterTime int64 // Request starting time in microseconds. - LeaveTime int64 // Request ending time in microseconds. + LeaveTime int64 // Request to end time in microseconds. Middleware *middleware // Middleware manager. StaticFile *staticFile // Static file object for static file serving. @@ -49,10 +49,10 @@ type Request struct { parsedBody bool // A bool marking whether the request body parsed. parsedForm bool // A bool marking whether request Form parsed for HTTP method PUT, POST, PATCH. paramsMap map[string]interface{} // Custom parameters map. - routerMap map[string]string // Router parameters map, which might be nil if there're no router parameters. + routerMap map[string]string // Router parameters map, which might be nil if there are no router parameters. queryMap map[string]interface{} // Query parameters map, which is nil if there's no query string. - formMap map[string]interface{} // Form parameters map, which is nil if there's no form data from client. - bodyMap map[string]interface{} // Body parameters map, which might be nil if there're no body content. + formMap map[string]interface{} // Form parameters map, which is nil if there's no form of data from the client. + bodyMap map[string]interface{} // Body parameters map, which might be nil if their nobody content. error error // Current executing error of the request. exitAll bool // A bool marking whether current request is exited. parsedHost string // The parsed host name for current host used by GetHost function. diff --git a/net/ghttp/ghttp_request_auth.go b/net/ghttp/ghttp_request_auth.go index 01734081264..f02942aadd3 100644 --- a/net/ghttp/ghttp_request_auth.go +++ b/net/ghttp/ghttp_request_auth.go @@ -14,7 +14,7 @@ import ( "github.com/gogf/gf/v2/encoding/gbase64" ) -// BasicAuth enables the http basic authentication feature with given passport and password +// BasicAuth enables the http basic authentication feature with a given passport and password // and asks client for authentication. It returns true if authentication success, else returns // false if failure. func (r *Request) BasicAuth(user, pass string, tips ...string) bool { diff --git a/net/ghttp/ghttp_request_middleware.go b/net/ghttp/ghttp_request_middleware.go index ddf4f7313fd..d66536528c3 100644 --- a/net/ghttp/ghttp_request_middleware.go +++ b/net/ghttp/ghttp_request_middleware.go @@ -29,7 +29,7 @@ func (m *middleware) Next() { var item *handlerParsedItem var loop = true for loop { - // Check whether the request is exited. + // Check whether the request is excited. if m.request.IsExited() || m.handlerIndex >= len(m.request.handlers) { break } @@ -112,7 +112,7 @@ func (m *middleware) Next() { loop = false }) } - // Check the http status code after all handler and middleware done. + // Check the http status code after all handlers and middleware done. if m.request.IsExited() || m.handlerIndex >= len(m.request.handlers) { if m.request.Response.Status == 0 { if m.request.Middleware.served { diff --git a/net/ghttp/ghttp_request_param.go b/net/ghttp/ghttp_request_param.go index 2a3be987388..61717784b59 100644 --- a/net/ghttp/ghttp_request_param.go +++ b/net/ghttp/ghttp_request_param.go @@ -320,7 +320,7 @@ func (r *Request) parseForm() { } } -// GetMultipartForm parses and returns the form as multipart form. +// GetMultipartForm parses and returns the form as multipart forms. func (r *Request) GetMultipartForm() *multipart.Form { r.parseForm() return r.MultipartForm diff --git a/net/ghttp/ghttp_request_param_ctx.go b/net/ghttp/ghttp_request_param_ctx.go index 7c4760b5653..b7d0a4e5c5c 100644 --- a/net/ghttp/ghttp_request_param_ctx.go +++ b/net/ghttp/ghttp_request_param_ctx.go @@ -48,7 +48,7 @@ func (r *Request) SetCtx(ctx context.Context) { r.context = ctx } -// GetCtxVar retrieves and returns a Var with given key name. +// GetCtxVar retrieves and returns a Var with a given key name. // The optional parameter `def` specifies the default value of the Var if given `key` // does not exist in the context. func (r *Request) GetCtxVar(key interface{}, def ...interface{}) *gvar.Var { @@ -59,7 +59,7 @@ func (r *Request) GetCtxVar(key interface{}, def ...interface{}) *gvar.Var { return gvar.New(value) } -// SetCtxVar sets custom parameter to context with key-value pair. +// SetCtxVar sets custom parameter to context with key-value pairs. func (r *Request) SetCtxVar(key interface{}, value interface{}) { r.context = context.WithValue(r.Context(), key, value) } diff --git a/net/ghttp/ghttp_request_param_file.go b/net/ghttp/ghttp_request_param_file.go index 84952e274d0..3e1b33966cd 100644 --- a/net/ghttp/ghttp_request_param_file.go +++ b/net/ghttp/ghttp_request_param_file.go @@ -27,7 +27,7 @@ type UploadFile struct { ctx context.Context } -// UploadFiles is array type for *UploadFile. +// UploadFiles is an array type of *UploadFile. type UploadFiles []*UploadFile // Save saves the single uploading file to directory path and returns the saved file name. diff --git a/net/ghttp/ghttp_request_param_form.go b/net/ghttp/ghttp_request_param_form.go index 617301343d8..49a36cf9616 100644 --- a/net/ghttp/ghttp_request_param_form.go +++ b/net/ghttp/ghttp_request_param_form.go @@ -11,7 +11,7 @@ import ( "github.com/gogf/gf/v2/util/gconv" ) -// SetForm sets custom form value with key-value pair. +// SetForm sets custom form value with key-value pairs. func (r *Request) SetForm(key string, value interface{}) { r.parseForm() if r.formMap == nil { diff --git a/net/ghttp/ghttp_request_param_page.go b/net/ghttp/ghttp_request_param_page.go index 8feda30eb9c..57721c96dd4 100644 --- a/net/ghttp/ghttp_request_param_page.go +++ b/net/ghttp/ghttp_request_param_page.go @@ -15,7 +15,7 @@ import ( ) // GetPage creates and returns the pagination object for given `totalSize` and `pageSize`. -// NOTE THAT the page parameter name from client is constantly defined as gpage.DefaultPageName +// NOTE THAT the page parameter name from clients is constantly defined as gpage.DefaultPageName // for simplification and convenience. func (r *Request) GetPage(totalSize, pageSize int) *gpage.Page { // It must have Router object attribute. diff --git a/net/ghttp/ghttp_request_param_param.go b/net/ghttp/ghttp_request_param_param.go index a12088633ad..48c1d742997 100644 --- a/net/ghttp/ghttp_request_param_param.go +++ b/net/ghttp/ghttp_request_param_param.go @@ -8,7 +8,7 @@ package ghttp import "github.com/gogf/gf/v2/container/gvar" -// SetParam sets custom parameter with key-value pair. +// SetParam sets custom parameter with key-value pairs. func (r *Request) SetParam(key string, value interface{}) { if r.paramsMap == nil { r.paramsMap = make(map[string]interface{}) @@ -16,7 +16,7 @@ func (r *Request) SetParam(key string, value interface{}) { r.paramsMap[key] = value } -// SetParamMap sets custom parameter with key-value pair map. +// SetParamMap sets custom parameter with key-value pair maps. func (r *Request) SetParamMap(data map[string]interface{}) { if r.paramsMap == nil { r.paramsMap = make(map[string]interface{}) @@ -26,7 +26,7 @@ func (r *Request) SetParamMap(data map[string]interface{}) { } } -// GetParam returns custom parameter with given name `key`. +// GetParam returns custom parameter with a given name `key`. // It returns `def` if `key` does not exist. // It returns nil if `def` is not passed. func (r *Request) GetParam(key string, def ...interface{}) *gvar.Var { diff --git a/net/ghttp/ghttp_request_param_query.go b/net/ghttp/ghttp_request_param_query.go index 3510030db66..82739fa99f2 100644 --- a/net/ghttp/ghttp_request_param_query.go +++ b/net/ghttp/ghttp_request_param_query.go @@ -11,7 +11,7 @@ import ( "github.com/gogf/gf/v2/util/gconv" ) -// SetQuery sets custom query value with key-value pair. +// SetQuery sets custom query value with key-value pairs. func (r *Request) SetQuery(key string, value interface{}) { r.parseQuery() if r.queryMap == nil { @@ -20,7 +20,7 @@ func (r *Request) SetQuery(key string, value interface{}) { r.queryMap[key] = value } -// GetQuery retrieves and returns parameter with given name `key` from query string +// GetQuery retrieves and return parameter with the given name `key` from query string // and request body. It returns `def` if `key` does not exist in the query and `def` is given, // or else it returns nil. // @@ -47,8 +47,8 @@ func (r *Request) GetQuery(key string, def ...interface{}) *gvar.Var { return nil } -// GetQueryMap retrieves and returns all parameters passed from client using HTTP GET method -// as map. The parameter `kvMap` specifies the keys retrieving from client parameters, +// GetQueryMap retrieves and returns all parameters passed from the client using HTTP GET method +// as the map. The parameter `kvMap` specifies the keys retrieving from client parameters, // the associated values are the default values if the client does not pass. // // Note that if there are multiple parameters with the same name, the parameters are retrieved and overwrote @@ -94,8 +94,8 @@ func (r *Request) GetQueryMap(kvMap ...map[string]interface{}) map[string]interf return m } -// GetQueryMapStrStr retrieves and returns all parameters passed from client using HTTP GET method -// as map[string]string. The parameter `kvMap` specifies the keys +// GetQueryMapStrStr retrieves and returns all parameters passed from the client using the HTTP GET method as a +// map[string]string. The parameter `kvMap` specifies the keys // retrieving from client parameters, the associated values are the default values if the client // does not pass. func (r *Request) GetQueryMapStrStr(kvMap ...map[string]interface{}) map[string]string { @@ -110,7 +110,7 @@ func (r *Request) GetQueryMapStrStr(kvMap ...map[string]interface{}) map[string] return nil } -// GetQueryMapStrVar retrieves and returns all parameters passed from client using HTTP GET method +// GetQueryMapStrVar retrieves and returns all parameters passed from the client using the HTTP GET method // as map[string]*gvar.Var. The parameter `kvMap` specifies the keys // retrieving from client parameters, the associated values are the default values if the client // does not pass. @@ -126,8 +126,8 @@ func (r *Request) GetQueryMapStrVar(kvMap ...map[string]interface{}) map[string] return nil } -// GetQueryStruct retrieves all parameters passed from client using HTTP GET method -// and converts them to given struct object. Note that the parameter `pointer` is a pointer +// GetQueryStruct retrieves all parameters passed from the client using the HTTP GET method +// and converts them to a given struct object. Note that the parameter `pointer` is a pointer // to the struct object. The optional parameter `mapping` is used to specify the key to // attribute mapping. func (r *Request) GetQueryStruct(pointer interface{}, mapping ...map[string]string) error { diff --git a/net/ghttp/ghttp_request_param_request.go b/net/ghttp/ghttp_request_param_request.go index c594194e46a..80c98609702 100644 --- a/net/ghttp/ghttp_request_param_request.go +++ b/net/ghttp/ghttp_request_param_request.go @@ -14,7 +14,7 @@ import ( "github.com/gogf/gf/v2/util/gutil" ) -// GetRequest retrieves and returns the parameter named `key` passed from client and +// GetRequest retrieves and returns the parameter named `key` passed from the client and // custom params as interface{}, no matter what HTTP method the client is using. The // parameter `def` specifies the default value if the `key` does not exist. // @@ -50,8 +50,8 @@ func (r *Request) GetRequest(key string, def ...interface{}) *gvar.Var { return nil } -// GetRequestMap retrieves and returns all parameters passed from client and custom params -// as map, no matter what HTTP method the client is using. The parameter `kvMap` specifies +// GetRequestMap retrieves and returns all parameters passed from the client and custom params +// as the map, no matter what HTTP method the client is using. The parameter `kvMap` specifies // the keys retrieving from client parameters, the associated values are the default values // if the client does not pass the according keys. // @@ -131,7 +131,7 @@ func (r *Request) GetRequestMap(kvMap ...map[string]interface{}) map[string]inte return m } -// GetRequestMapStrStr retrieves and returns all parameters passed from client and custom +// GetRequestMapStrStr retrieve and returns all parameters passed from the client and custom // params as map[string]string, no matter what HTTP method the client is using. The parameter // `kvMap` specifies the keys retrieving from client parameters, the associated values are the // default values if the client does not pass. @@ -147,7 +147,7 @@ func (r *Request) GetRequestMapStrStr(kvMap ...map[string]interface{}) map[strin return nil } -// GetRequestMapStrVar retrieves and returns all parameters passed from client and custom +// GetRequestMapStrVar retrieve and returns all parameters passed from the client and custom // params as map[string]*gvar.Var, no matter what HTTP method the client is using. The parameter // `kvMap` specifies the keys retrieving from client parameters, the associated values are the // default values if the client does not pass. @@ -163,8 +163,8 @@ func (r *Request) GetRequestMapStrVar(kvMap ...map[string]interface{}) map[strin return nil } -// GetRequestStruct retrieves all parameters passed from client and custom params no matter -// what HTTP method the client is using, and converts them to given struct object. Note that +// GetRequestStruct retrieves all parameters passed from the client and custom params no matter +// what HTTP method the client is using, and converts them to give the struct object. Note that // the parameter `pointer` is a pointer to the struct object. // The optional parameter `mapping` is used to specify the key to attribute mapping. func (r *Request) GetRequestStruct(pointer interface{}, mapping ...map[string]string) error { diff --git a/net/ghttp/ghttp_request_param_router.go b/net/ghttp/ghttp_request_param_router.go index 37db2f11a67..ee816ba10f1 100644 --- a/net/ghttp/ghttp_request_param_router.go +++ b/net/ghttp/ghttp_request_param_router.go @@ -8,7 +8,7 @@ package ghttp import "github.com/gogf/gf/v2/container/gvar" -// GetRouterMap retrieves and returns a copy of router map. +// GetRouterMap retrieves and returns a copy of the router map. func (r *Request) GetRouterMap() map[string]string { if r.routerMap != nil { m := make(map[string]string, len(r.routerMap)) diff --git a/net/ghttp/ghttp_response.go b/net/ghttp/ghttp_response.go index 6b01be340bd..e696a4f54fa 100644 --- a/net/ghttp/ghttp_response.go +++ b/net/ghttp/ghttp_response.go @@ -96,7 +96,7 @@ func (r *Response) ServeFileDownload(path string, name ...string) { r.Server.serveFile(r.Request, serveFile) } -// RedirectTo redirects client to another location. +// RedirectTo redirects the client to another location. // The optional parameter `code` specifies the http status code for redirecting, // which commonly can be 301 or 302. It's 302 in default. func (r *Response) RedirectTo(location string, code ...int) { @@ -109,7 +109,7 @@ func (r *Response) RedirectTo(location string, code ...int) { r.Request.Exit() } -// RedirectBack redirects client back to referer. +// RedirectBack redirects the client back to referer. // The optional parameter `code` specifies the http status code for redirecting, // which commonly can be 301 or 302. It's 302 in default. func (r *Response) RedirectBack(code ...int) { diff --git a/net/ghttp/ghttp_response_cors.go b/net/ghttp/ghttp_response_cors.go index d18fbc9b5d5..438c79ac3e2 100644 --- a/net/ghttp/ghttp_response_cors.go +++ b/net/ghttp/ghttp_response_cors.go @@ -31,7 +31,7 @@ type CORSOptions struct { var ( // defaultAllowHeaders is the default allowed headers for CORS. - // It's defined another map for better header key searching performance. + // It defined another map for better header key searching performance. defaultAllowHeaders = "Origin,Content-Type,Accept,User-Agent,Cookie,Authorization,X-Auth-Token,X-Requested-With" defaultAllowHeadersMap = make(map[string]struct{}) ) diff --git a/net/ghttp/ghttp_response_view.go b/net/ghttp/ghttp_response_view.go index ed733c99800..06c0388f2f6 100644 --- a/net/ghttp/ghttp_response_view.go +++ b/net/ghttp/ghttp_response_view.go @@ -93,7 +93,7 @@ func (r *Response) buildInVars(params ...map[string]interface{}) map[string]inte "Cookie": r.Request.Cookie.Map(), "Session": sessionMap, }) - // Note that it should assign no Config variable to template + // Note that it should assign no Config variable to a template // if there's no configuration file. if v, _ := gcfg.Instance().Data(r.Request.Context()); len(v) > 0 { m["Config"] = v diff --git a/net/ghttp/ghttp_response_write.go b/net/ghttp/ghttp_response_write.go index e7923e3520b..34878cd5db4 100644 --- a/net/ghttp/ghttp_response_write.go +++ b/net/ghttp/ghttp_response_write.go @@ -37,7 +37,7 @@ func (r *Response) Write(content ...interface{}) { } // WriteExit writes `content` to the response buffer and exits executing of current handler. -// The "Exit" feature is commonly used to replace usage of return statement in the handler, +// The "Exit" feature is commonly used to replace usage of return statements in the handler, // for convenience. func (r *Response) WriteExit(content ...interface{}) { r.Write(content...) @@ -52,7 +52,7 @@ func (r *Response) WriteOver(content ...interface{}) { // WriteOverExit overwrites the response buffer with `content` and exits executing // of current handler. The "Exit" feature is commonly used to replace usage of return -// statement in the handler, for convenience. +// statements in the handler, for convenience. func (r *Response) WriteOverExit(content ...interface{}) { r.WriteOver(content...) r.Request.Exit() @@ -64,7 +64,7 @@ func (r *Response) Writef(format string, params ...interface{}) { } // WritefExit writes the response with fmt.Sprintf and exits executing of current handler. -// The "Exit" feature is commonly used to replace usage of return statement in the handler, +// The "Exit" feature is commonly used to replace usage of return statements in the handler, // for convenience. func (r *Response) WritefExit(format string, params ...interface{}) { r.Writef(format, params...) @@ -82,7 +82,7 @@ func (r *Response) Writeln(content ...interface{}) { // WritelnExit writes the response with `content` and new line and exits executing // of current handler. The "Exit" feature is commonly used to replace usage of return -// statement in the handler, for convenience. +// statements in the handler, for convenience. func (r *Response) WritelnExit(content ...interface{}) { r.Writeln(content...) r.Request.Exit() @@ -104,7 +104,7 @@ func (r *Response) WriteflnExit(format string, params ...interface{}) { // WriteJson writes `content` to the response with JSON format. func (r *Response) WriteJson(content interface{}) error { r.Header().Set("Content-Type", contentTypeJson) - // If given string/[]byte, response it directly to client. + // If given string/[]byte, response it directly to the client. switch content.(type) { case string, []byte: r.Write(gconv.String(content)) @@ -121,7 +121,7 @@ func (r *Response) WriteJson(content interface{}) error { // WriteJsonExit writes `content` to the response with JSON format and exits executing // of current handler if success. The "Exit" feature is commonly used to replace usage of -// return statement in the handler, for convenience. +// return statements in the handler, for convenience. func (r *Response) WriteJsonExit(content interface{}) error { if err := r.WriteJson(content); err != nil { return err @@ -161,7 +161,7 @@ func (r *Response) WriteJsonP(content interface{}) error { // WriteJsonPExit writes `content` to the response with JSONP format and exits executing // of current handler if success. The "Exit" feature is commonly used to replace usage of -// return statement in the handler, for convenience. +// return statements in the handler, for convenience. // // Note that there should be a "callback" parameter in the request for JSONP format. func (r *Response) WriteJsonPExit(content interface{}) error { @@ -175,7 +175,7 @@ func (r *Response) WriteJsonPExit(content interface{}) error { // WriteXml writes `content` to the response with XML format. func (r *Response) WriteXml(content interface{}, rootTag ...string) error { r.Header().Set("Content-Type", contentTypeXml) - // If given string/[]byte, response it directly to client. + // If given string/[]byte, response it directly to clients. switch content.(type) { case string, []byte: r.Write(gconv.String(content)) @@ -191,7 +191,7 @@ func (r *Response) WriteXml(content interface{}, rootTag ...string) error { // WriteXmlExit writes `content` to the response with XML format and exits executing // of current handler if success. The "Exit" feature is commonly used to replace usage -// of return statement in the handler, for convenience. +// of return statements in the handler, for convenience. func (r *Response) WriteXmlExit(content interface{}, rootTag ...string) error { if err := r.WriteXml(content, rootTag...); err != nil { return err @@ -201,7 +201,7 @@ func (r *Response) WriteXmlExit(content interface{}, rootTag ...string) error { } // WriteStatus writes HTTP `status` and `content` to the response. -// Note that do not set Content-Type header here. +// Note that it does not set a Content-Type header here. func (r *Response) WriteStatus(status int, content ...interface{}) { r.WriteHeader(status) if len(content) > 0 { @@ -213,7 +213,7 @@ func (r *Response) WriteStatus(status int, content ...interface{}) { // WriteStatusExit writes HTTP `status` and `content` to the response and exits executing // of current handler if success. The "Exit" feature is commonly used to replace usage of -// return statement in the handler, for convenience. +// return statements in the handler, for convenience. func (r *Response) WriteStatusExit(status int, content ...interface{}) { r.WriteStatus(status, content...) r.Request.Exit() diff --git a/net/ghttp/ghttp_response_writer.go b/net/ghttp/ghttp_response_writer.go index 5a8781a0295..a6aee046af6 100644 --- a/net/ghttp/ghttp_response_writer.go +++ b/net/ghttp/ghttp_response_writer.go @@ -50,7 +50,7 @@ func (w *ResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { return w.writer.(http.Hijacker).Hijack() } -// Flush outputs the buffer to client and clears the buffer. +// Flush outputs the buffer to clients and clears the buffer. func (w *ResponseWriter) Flush() { if w.hijacked { return diff --git a/net/ghttp/ghttp_server.go b/net/ghttp/ghttp_server.go index 0961cba70c6..ead149e353c 100644 --- a/net/ghttp/ghttp_server.go +++ b/net/ghttp/ghttp_server.go @@ -16,7 +16,6 @@ import ( "strings" "time" - "github.com/gogf/gf/v2/net/ghttp/internal/swaggerui" "github.com/olekukonko/tablewriter" "github.com/gogf/gf/v2/container/garray" @@ -25,6 +24,7 @@ import ( "github.com/gogf/gf/v2/errors/gcode" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/internal/intlog" + "github.com/gogf/gf/v2/net/ghttp/internal/swaggerui" "github.com/gogf/gf/v2/os/gcache" "github.com/gogf/gf/v2/os/genv" "github.com/gogf/gf/v2/os/gfile" @@ -39,7 +39,7 @@ import ( ) func init() { - // Initialize the methods map. + // Initialize the method map. for _, v := range strings.Split(supportedHttpMethods, ",") { methodsMap[v] = struct{}{} } @@ -51,7 +51,7 @@ func serverProcessInit() { if !serverProcessInitialized.Cas(false, true) { return } - // This means it is a restart server, it should kill its parent before starting its listening, + // This means it is a restart server. It should kill its parent before starting its listening, // to avoid duplicated port listening in two processes. if !genv.Get(adminActionRestartEnvKey).IsEmpty() { if p, err := os.FindProcess(gproc.PPid()); err == nil { @@ -70,7 +70,7 @@ func serverProcessInit() { go handleProcessSignal() // Process message handler. - // It's enabled only graceful feature is enabled. + // It enabled only a graceful feature is enabled. if gracefulEnabled { intlog.Printf(ctx, "%d: graceful reload feature is enabled", gproc.Pid()) go handleProcessMessage() @@ -80,7 +80,7 @@ func serverProcessInit() { // It's an ugly calling for better initializing the main package path // in source development environment. It is useful only be used in main goroutine. - // It fails retrieving the main package path in asynchronous goroutines. + // It fails to retrieve the main package path in asynchronous goroutines. gfile.MainPkgPath() } @@ -213,7 +213,7 @@ func (s *Server) Start() error { // Check the group routes again. s.handlePreBindItems(ctx) - // If there's no route registered and no static service enabled, + // If there's no route registered and no static service enabled, // it then returns an error of invalid usage of server. if len(s.routesMap) == 0 && !s.config.FileServerEnabled { return gerror.NewCode( @@ -525,8 +525,8 @@ func (s *Server) startServer(fdMap listenerFdMap) { ) if len(addrAndFd) > 1 { itemFunc = addrAndFd[0] - // The Windows OS does not support socket file descriptor passing - // from parent process. + // The Window OS does not support socket file descriptor passing + // from the parent process. if runtime.GOOS != "windows" { fd = gconv.Int(addrAndFd[1]) } diff --git a/net/ghttp/ghttp_server_admin_process.go b/net/ghttp/ghttp_server_admin_process.go index a02ab0eb1c2..fffe50ae83d 100644 --- a/net/ghttp/ghttp_server_admin_process.go +++ b/net/ghttp/ghttp_server_admin_process.go @@ -196,7 +196,7 @@ func bufferToServerFdMap(buffer []byte) map[string]listenerFdMap { sfm := make(map[string]listenerFdMap) if len(buffer) > 0 { j, _ := gjson.LoadContent(buffer) - for k, _ := range j.Var().Map() { + for k := range j.Var().Map() { m := make(map[string]string) for k, v := range j.Get(k).Map() { m[k] = gconv.String(v) diff --git a/net/ghttp/ghttp_server_admin_unix.go b/net/ghttp/ghttp_server_admin_unix.go index b98b1d40d3d..ba573224d00 100644 --- a/net/ghttp/ghttp_server_admin_unix.go +++ b/net/ghttp/ghttp_server_admin_unix.go @@ -18,10 +18,10 @@ import ( "github.com/gogf/gf/v2/internal/intlog" ) -// procSignalChan is the channel for listening the signal. +// procSignalChan is the channel for listening to the signal. var procSignalChan = make(chan os.Signal) -// handleProcessSignal handles all signal from system. +// handleProcessSignal handles all signals from system. func handleProcessSignal() { var ( ctx = context.TODO() diff --git a/net/ghttp/ghttp_server_admin_windows.go b/net/ghttp/ghttp_server_admin_windows.go index 2a514493d15..02791d38ee5 100644 --- a/net/ghttp/ghttp_server_admin_windows.go +++ b/net/ghttp/ghttp_server_admin_windows.go @@ -9,7 +9,7 @@ package ghttp -// registerSignalHandler does nothing on windows platform. +// registerSignalHandler does nothing on a window platform. func handleProcessSignal() { } diff --git a/net/ghttp/ghttp_server_config.go b/net/ghttp/ghttp_server_config.go index 1aa63a744b5..867543cb431 100644 --- a/net/ghttp/ghttp_server_config.go +++ b/net/ghttp/ghttp_server_config.go @@ -28,10 +28,10 @@ import ( const ( defaultHttpAddr = ":80" // Default listening port for HTTP. defaultHttpsAddr = ":443" // Default listening port for HTTPS. - UriTypeDefault = 0 // Method names to URI converting type, which converts name to its lower case and joins the words using char '-'. - UriTypeFullName = 1 // Method names to URI converting type, which does no converting to the method name. - UriTypeAllLower = 2 // Method names to URI converting type, which converts name to its lower case. - UriTypeCamel = 3 // Method names to URI converting type, which converts name to its camel case. + UriTypeDefault = 0 // Method names to the URI converting type, which converts name to its lower case and joins the words using char '-'. + UriTypeFullName = 1 // Method names to the URI converting type, which does not convert to the method name. + UriTypeAllLower = 2 // Method names to the URI converting type, which converts name to its lower case. + UriTypeCamel = 3 // Method names to the URI converting type, which converts name to its camel case. ) // ServerConfig is the HTTP Server configuration manager. diff --git a/net/ghttp/ghttp_server_config_cookie.go b/net/ghttp/ghttp_server_config_cookie.go index 2282abf05bb..7f772d3cb58 100644 --- a/net/ghttp/ghttp_server_config_cookie.go +++ b/net/ghttp/ghttp_server_config_cookie.go @@ -26,7 +26,7 @@ func (s *Server) SetCookieDomain(domain string) { s.config.CookieDomain = domain } -// GetCookieMaxAge returns the CookieMaxAge of server. +// GetCookieMaxAge returns the CookieMaxAge of the server. func (s *Server) GetCookieMaxAge() time.Duration { return s.config.CookieMaxAge } diff --git a/net/ghttp/ghttp_server_config_route.go b/net/ghttp/ghttp_server_config_route.go index 1fcde0eb5e8..7ebbef33c40 100644 --- a/net/ghttp/ghttp_server_config_route.go +++ b/net/ghttp/ghttp_server_config_route.go @@ -11,7 +11,7 @@ func (s *Server) SetRewrite(uri string, rewrite string) { s.config.Rewrites[uri] = rewrite } -// SetRewriteMap sets the rewrite map for server. +// SetRewriteMap sets the rewritten map for server. func (s *Server) SetRewriteMap(rewrites map[string]string) { for k, v := range rewrites { s.config.Rewrites[k] = v diff --git a/net/ghttp/ghttp_server_config_static.go b/net/ghttp/ghttp_server_config_static.go index b2b7042d538..dc3fb29b38c 100644 --- a/net/ghttp/ghttp_server_config_static.go +++ b/net/ghttp/ghttp_server_config_static.go @@ -12,10 +12,9 @@ import ( "context" "strings" - "github.com/gogf/gf/v2/os/gres" - "github.com/gogf/gf/v2/container/garray" "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gres" "github.com/gogf/gf/v2/util/gconv" ) @@ -30,7 +29,7 @@ func (s *Server) SetIndexFiles(indexFiles []string) { s.config.IndexFiles = indexFiles } -// GetIndexFiles retrieves and returns the index files from server. +// GetIndexFiles retrieves and returns the index files from the server. func (s *Server) GetIndexFiles() []string { return s.config.IndexFiles } diff --git a/net/ghttp/ghttp_server_cookie.go b/net/ghttp/ghttp_server_cookie.go index 1e519d95740..b5e618ba0ce 100644 --- a/net/ghttp/ghttp_server_cookie.go +++ b/net/ghttp/ghttp_server_cookie.go @@ -31,7 +31,7 @@ type CookieOptions struct { // cookieItem is the item stored in Cookie. type cookieItem struct { *http.Cookie // Underlying cookie items. - FromClient bool // Mark this cookie received from client. + FromClient bool // Mark this cookie received from the client. } // GetCookie creates or retrieves a cookie object with given request. @@ -47,7 +47,7 @@ func GetCookie(r *Request) *Cookie { } } -// init does lazy initialization for cookie object. +// init does lazy initialization for the cookie object. func (c *Cookie) init() { if c.data != nil { return @@ -76,7 +76,7 @@ func (c *Cookie) Map() map[string]string { return m } -// Contains checks if given key exists and not expired in cookie. +// Contains checks if given key exists and not expire in cookie. func (c *Cookie) Contains(key string) bool { c.init() if r, ok := c.data[key]; ok { @@ -191,7 +191,7 @@ func (c *Cookie) RemoveCookie(key, domain, path string) { c.SetCookie(key, "", domain, path, -24*time.Hour) } -// Flush outputs the cookie items to client. +// Flush outputs the cookie items to the client. func (c *Cookie) Flush() { if len(c.data) == 0 { return diff --git a/net/ghttp/ghttp_server_domain.go b/net/ghttp/ghttp_server_domain.go index 74a77c4a165..073419746b9 100644 --- a/net/ghttp/ghttp_server_domain.go +++ b/net/ghttp/ghttp_server_domain.go @@ -29,14 +29,15 @@ func (s *Server) Domain(domains string) *Domain { return d } +// BindHandler binds the handler for the specified pattern. func (d *Domain) BindHandler(pattern string, handler interface{}) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.BindHandler(pattern+"@"+domain, handler) } } func (d *Domain) doBindHandler(ctx context.Context, in doBindHandlerInput) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.doBindHandler(ctx, doBindHandlerInput{ Prefix: in.Prefix, Pattern: in.Pattern + "@" + domain, @@ -47,14 +48,15 @@ func (d *Domain) doBindHandler(ctx context.Context, in doBindHandlerInput) { } } +// BindObject binds the object for the specified pattern. func (d *Domain) BindObject(pattern string, obj interface{}, methods ...string) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.BindObject(pattern+"@"+domain, obj, methods...) } } func (d *Domain) doBindObject(ctx context.Context, in doBindObjectInput) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.doBindObject(ctx, doBindObjectInput{ Prefix: in.Prefix, Pattern: in.Pattern + "@" + domain, @@ -66,14 +68,15 @@ func (d *Domain) doBindObject(ctx context.Context, in doBindObjectInput) { } } +// BindObjectMethod binds the method for the specified pattern. func (d *Domain) BindObjectMethod(pattern string, obj interface{}, method string) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.BindObjectMethod(pattern+"@"+domain, obj, method) } } func (d *Domain) doBindObjectMethod(ctx context.Context, in doBindObjectMethodInput) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.doBindObjectMethod(ctx, doBindObjectMethodInput{ Prefix: in.Prefix, Pattern: in.Pattern + "@" + domain, @@ -85,14 +88,15 @@ func (d *Domain) doBindObjectMethod(ctx context.Context, in doBindObjectMethodIn } } +// BindObjectRest binds the RESTful API for the specified pattern. func (d *Domain) BindObjectRest(pattern string, obj interface{}) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.BindObjectRest(pattern+"@"+domain, obj) } } func (d *Domain) doBindObjectRest(ctx context.Context, in doBindObjectInput) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.doBindObjectRest(ctx, doBindObjectInput{ Prefix: in.Prefix, Pattern: in.Pattern + "@" + domain, @@ -104,14 +108,15 @@ func (d *Domain) doBindObjectRest(ctx context.Context, in doBindObjectInput) { } } +// BindHookHandler binds the hook handler for the specified pattern. func (d *Domain) BindHookHandler(pattern string, hook string, handler HandlerFunc) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.BindHookHandler(pattern+"@"+domain, hook, handler) } } func (d *Domain) doBindHookHandler(ctx context.Context, in doBindHookHandlerInput) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.doBindHookHandler(ctx, doBindHookHandlerInput{ Prefix: in.Prefix, Pattern: in.Pattern + "@" + domain, @@ -122,36 +127,42 @@ func (d *Domain) doBindHookHandler(ctx context.Context, in doBindHookHandlerInpu } } -func (d *Domain) BindHookHandlerByMap(pattern string, hookmap map[string]HandlerFunc) { - for domain, _ := range d.domains { - d.server.BindHookHandlerByMap(pattern+"@"+domain, hookmap) +// BindHookHandlerByMap binds the hook handler for the specified pattern. +func (d *Domain) BindHookHandlerByMap(pattern string, hookMap map[string]HandlerFunc) { + for domain := range d.domains { + d.server.BindHookHandlerByMap(pattern+"@"+domain, hookMap) } } +// BindStatusHandler binds the status handler for the specified pattern. func (d *Domain) BindStatusHandler(status int, handler HandlerFunc) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.addStatusHandler(d.server.statusHandlerKey(status, domain), handler) } } +// BindStatusHandlerByMap binds the status handler for the specified pattern. func (d *Domain) BindStatusHandlerByMap(handlerMap map[int]HandlerFunc) { for k, v := range handlerMap { d.BindStatusHandler(k, v) } } +// BindMiddleware binds the middleware for the specified pattern. func (d *Domain) BindMiddleware(pattern string, handlers ...HandlerFunc) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.BindMiddleware(pattern+"@"+domain, handlers...) } } +// BindMiddlewareDefault binds the default middleware for the specified pattern. func (d *Domain) BindMiddlewareDefault(handlers ...HandlerFunc) { - for domain, _ := range d.domains { + for domain := range d.domains { d.server.BindMiddleware(defaultMiddlewarePattern+"@"+domain, handlers...) } } +// Use adds middleware to the domain. func (d *Domain) Use(handlers ...HandlerFunc) { d.BindMiddlewareDefault(handlers...) } diff --git a/net/ghttp/ghttp_server_graceful.go b/net/ghttp/ghttp_server_graceful.go index 1eaad532132..a1a1dcf9288 100644 --- a/net/ghttp/ghttp_server_graceful.go +++ b/net/ghttp/ghttp_server_graceful.go @@ -24,7 +24,7 @@ import ( // gracefulServer wraps the net/http.Server with graceful reload/restart feature. type gracefulServer struct { server *Server // Belonged server. - fd uintptr // File descriptor for passing to child process when graceful reload. + fd uintptr // File descriptor for passing to the child process when graceful reload. address string // Listening address like:":80", ":8080". httpServer *http.Server // Underlying http.Server. rawListener net.Listener // Underlying net.Listener. @@ -34,7 +34,7 @@ type gracefulServer struct { status int // Status of current server. } -// newGracefulServer creates and returns a graceful http server with given address. +// newGracefulServer creates and returns a graceful http server with a given address. // The optional parameter `fd` specifies the file descriptor which is passed from parent server. func (s *Server) newGracefulServer(address string, fd ...int) *gracefulServer { // Change port to address like: 80 -> :80 @@ -52,7 +52,7 @@ func (s *Server) newGracefulServer(address string, fd ...int) *gracefulServer { return gs } -// newGracefulServer creates and returns an underlying http.Server with given address. +// newHttpServer creates and returns an underlying http.Server with a given address. func (s *Server) newHttpServer(address string) *http.Server { server := &http.Server{ Addr: address, @@ -78,8 +78,8 @@ func (s *gracefulServer) ListenAndServe() error { return s.doServe(context.TODO()) } -// Fd retrieves and returns the file descriptor of current server. -// It is available ony in *nix like operating systems like: linux, unix, darwin. +// Fd retrieves and returns the file descriptor of the current server. +// It is available ony in *nix like operating systems like linux, unix, darwin. func (s *gracefulServer) Fd() uintptr { if ln := s.getRawListener(); ln != nil { file, err := ln.(*net.TCPListener).File() @@ -139,7 +139,7 @@ func (s *gracefulServer) ListenAndServeTLS(certFile, keyFile string, tlsConfig . return s.doServe(ctx) } -// GetListenedPort retrieves and returns one port which is listened by current server. +// GetListenedPort retrieves and returns one port which is listened to by current server. func (s *gracefulServer) GetListenedPort() int { if ln := s.getRawListener(); ln != nil { return ln.Addr().(*net.TCPAddr).Port diff --git a/net/ghttp/ghttp_server_handler.go b/net/ghttp/ghttp_server_handler.go index 89b9697cbf2..a35cd594182 100644 --- a/net/ghttp/ghttp_server_handler.go +++ b/net/ghttp/ghttp_server_handler.go @@ -27,7 +27,7 @@ import ( // It should not create new goroutine handling the request as // it's called by am already created new goroutine from http.Server. // -// This function also make serve implementing the interface of http.Handler. +// This function also makes serve implementing the interface of http.Handler. func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { // Max body size limit. if s.config.ClientMaxBodySize > 0 { @@ -174,9 +174,9 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { request.Session.MustId() != request.GetSessionId() { request.Cookie.SetSessionId(request.Session.MustId()) } - // Output the cookie content to client. + // Output the cookie content to the client. request.Cookie.Flush() - // Output the buffer content to client. + // Output the buffer content to the client. request.Response.Flush() // HOOK - AfterOutput if !request.IsExited() { @@ -248,8 +248,8 @@ func (s *Server) searchStaticFile(uri string) *staticFile { return nil } -// serveFile serves the static file for client. -// The optional parameter `allowIndex` specifies if allowing directory listing if `f` is directory. +// serveFile serves the static file for the client. +// The optional parameter `allowIndex` specifies if allowing directory listing if `f` is a directory. func (s *Server) serveFile(r *Request, f *staticFile, allowIndex ...bool) { // Use resource file from memory. if f.File != nil { @@ -291,7 +291,7 @@ func (s *Server) serveFile(r *Request, f *staticFile, allowIndex ...bool) { } } -// listDir lists the sub files of specified directory as HTML content to client. +// listDir lists the sub files of specified directory as HTML content to the client. func (s *Server) listDir(r *Request, f http.File) { files, err := f.Readdir(-1) if err != nil { diff --git a/net/ghttp/ghttp_server_plugin.go b/net/ghttp/ghttp_server_plugin.go index ce97e7f9b37..53c12583ad8 100644 --- a/net/ghttp/ghttp_server_plugin.go +++ b/net/ghttp/ghttp_server_plugin.go @@ -12,11 +12,11 @@ type Plugin interface { Author() string // Author returns the author of the plugin. Version() string // Version returns the version of the plugin, like "v1.0.0". Description() string // Description returns the description of the plugin. - Install(s *Server) error // Install installs the plugin before server starts. + Install(s *Server) error // Install installs the plugin before the server starts. Remove() error // Remove removes the plugin. } -// Plugin adds plugin to server. +// Plugin adds plugin to the server. func (s *Server) Plugin(plugin ...Plugin) { s.plugins = append(s.plugins, plugin...) } diff --git a/net/ghttp/ghttp_server_router.go b/net/ghttp/ghttp_server_router.go index bbf681f7f99..015adf97ba4 100644 --- a/net/ghttp/ghttp_server_router.go +++ b/net/ghttp/ghttp_server_router.go @@ -34,7 +34,7 @@ var ( handlerIdGenerator = gtype.NewInt() ) -// routerMapKey creates and returns an unique router key for given parameters. +// routerMapKey creates and returns a unique router key for given parameters. // This key is used for Server.routerMap attribute, which is mainly for checks for // repeated router registering. func (s *Server) routerMapKey(hook, method, path, domain string) string { @@ -73,8 +73,8 @@ type setHandlerInput struct { HandlerItem *handlerItem } -// setHandler creates router item with given handler and pattern and registers the handler to the router tree. -// The router tree can be treated as a multilayer hash table, please refer to the comment in following codes. +// setHandler creates router item with a given handler and pattern and registers the handler to the router tree. +// The router tree can be treated as a multilayer hash table, please refer to the comment in the following codes. // This function is called during server starts up, which cares little about the performance. What really cares // is the well-designed router storage structure for router searching when the request is under serving. func (s *Server) setHandler(ctx context.Context, in setHandlerInput) { @@ -97,7 +97,7 @@ func (s *Server) setHandler(ctx context.Context, in setHandlerInput) { return } - // Change the registered route according meta info from its request structure. + // Change the registered route according to meta info from its request structure. if handler.Info.Type != nil && handler.Info.Type.NumIn() == 2 { var objectReq = reflect.New(handler.Info.Type.In(1)) if v := gmeta.Get(objectReq, goai.TagNamePath); !v.IsEmpty() { @@ -201,7 +201,7 @@ func (s *Server) setHandler(ctx context.Context, in setHandlerInput) { lists = append(lists, v.(*glist.List)) } } - // Make a new bucket for current node. + // Make a new bucket for the current node. if _, ok := p.(map[string]interface{})[part]; !ok { p.(map[string]interface{})[part] = make(map[string]interface{}) } @@ -270,7 +270,7 @@ func (s *Server) setHandler(ctx context.Context, in setHandlerInput) { // 2. URI: The deeper, the higher (simply check the count of char '/' in the URI). // 3. Route type: {xxx} > :xxx > *xxx. func (s *Server) compareRouterPriority(newItem *handlerItem, oldItem *handlerItem) bool { - // If they're all type of middleware, the priority is according their registered sequence. + // If they're all types of middleware, the priority is according to their registered sequence. if newItem.Type == HandlerTypeMiddleware && oldItem.Type == HandlerTypeMiddleware { return false } @@ -348,7 +348,7 @@ func (s *Server) compareRouterPriority(newItem *handlerItem, oldItem *handlerIte return false } - // If the counts of their fuzzy rules equal. + // If the counts of their fuzzy rules are equal. // Eg: /name/{act} > /name/:act if fuzzyCountFieldNew > fuzzyCountFieldOld { @@ -385,7 +385,7 @@ func (s *Server) compareRouterPriority(newItem *handlerItem, oldItem *handlerIte return false } -// patternToRegular converts route rule to according regular expression. +// patternToRegular converts route rule to according to regular expression. func (s *Server) patternToRegular(rule string) (regular string, names []string) { if len(rule) < 2 { return rule, nil diff --git a/net/ghttp/ghttp_server_router_group.go b/net/ghttp/ghttp_server_router_group.go index a4a6cc9fb31..8d6b4de585a 100644 --- a/net/ghttp/ghttp_server_router_group.go +++ b/net/ghttp/ghttp_server_router_group.go @@ -36,8 +36,8 @@ type ( pattern string object interface{} // Can be handler, controller or object. params []interface{} // Extra parameters for route registering depending on the type. - source string // Handler is register at certain source file path:line. - bound bool // Is this item bound to server. + source string // Handler is a register at a certain source file path: line. + bound bool // Is this item bound to server? } ) @@ -114,7 +114,7 @@ func (d *Domain) Group(prefix string, groups ...func(group *RouterGroup)) *Route return routerGroup } -// Group creates and returns a sub-group of current router group. +// Group creates and returns a subgroup of the current router group. func (g *RouterGroup) Group(prefix string, groups ...func(group *RouterGroup)) *RouterGroup { if prefix == "/" { prefix = "" @@ -137,7 +137,7 @@ func (g *RouterGroup) Group(prefix string, groups ...func(group *RouterGroup)) * return group } -// Clone returns a new router group which is a clone of current group. +// Clone returns a new router group which is a clone of the current group. func (g *RouterGroup) Clone() *RouterGroup { newGroup := &RouterGroup{ parent: g.parent, @@ -150,7 +150,7 @@ func (g *RouterGroup) Clone() *RouterGroup { return newGroup } -// Bind does batch route registering feature for router group. +// Bind does batch route registering feature for a router group. func (g *RouterGroup) Bind(handlerOrObject ...interface{}) *RouterGroup { var ( ctx = context.TODO() @@ -176,7 +176,7 @@ func (g *RouterGroup) Bind(handlerOrObject ...interface{}) *RouterGroup { return group } -// ALL registers a http handler to given route pattern and all http methods. +// ALL register a http handler to give the route pattern and all http methods. func (g *RouterGroup) ALL(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray( groupBindTypeHandler, @@ -200,52 +200,52 @@ func (g *RouterGroup) Map(m map[string]interface{}) { } } -// GET registers a http handler to given route pattern and http method: GET. +// GET registers a http handler to give the route pattern and the http method: GET. func (g *RouterGroup) GET(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "GET:"+pattern, object, params...) } -// PUT registers a http handler to given route pattern and http method: PUT. +// PUT registers a http handler to give the route pattern and the http method: PUT. func (g *RouterGroup) PUT(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "PUT:"+pattern, object, params...) } -// POST registers a http handler to given route pattern and http method: POST. +// POST registers a http handler to give the route pattern and the http method: POST. func (g *RouterGroup) POST(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "POST:"+pattern, object, params...) } -// DELETE registers a http handler to given route pattern and http method: DELETE. +// DELETE registers a http handler to give the route pattern and the http method: DELETE. func (g *RouterGroup) DELETE(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "DELETE:"+pattern, object, params...) } -// PATCH registers a http handler to given route pattern and http method: PATCH. +// PATCH registers a http handler to give the route pattern and the http method: PATCH. func (g *RouterGroup) PATCH(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "PATCH:"+pattern, object, params...) } -// HEAD registers a http handler to given route pattern and http method: HEAD. +// HEAD registers a http handler to give the route pattern and the http method: HEAD. func (g *RouterGroup) HEAD(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "HEAD:"+pattern, object, params...) } -// CONNECT registers a http handler to given route pattern and http method: CONNECT. +// CONNECT registers a http handler to give the route pattern and the http method: CONNECT. func (g *RouterGroup) CONNECT(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "CONNECT:"+pattern, object, params...) } -// OPTIONS registers a http handler to given route pattern and http method: OPTIONS. +// OPTIONS register a http handler to give the route pattern and the http method: OPTIONS. func (g *RouterGroup) OPTIONS(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "OPTIONS:"+pattern, object, params...) } -// TRACE registers a http handler to given route pattern and http method: TRACE. +// TRACE registers a http handler to give the route pattern and the http method: TRACE. func (g *RouterGroup) TRACE(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeHandler, "TRACE:"+pattern, object, params...) } -// REST registers a http handler to given route pattern according to REST rule. +// REST registers a http handler to give the route pattern according to REST rule. func (g *RouterGroup) REST(pattern string, object interface{}) *RouterGroup { return g.Clone().preBindToLocalArray(groupBindTypeRest, pattern, object) } @@ -261,7 +261,7 @@ func (g *RouterGroup) Middleware(handlers ...HandlerFunc) *RouterGroup { return g } -// preBindToLocalArray adds the route registering parameters to internal variable array for lazily registering feature. +// preBindToLocalArray adds the route registering parameters to an internal variable array for lazily registering feature. func (g *RouterGroup) preBindToLocalArray(bindType string, pattern string, object interface{}, params ...interface{}) *RouterGroup { _, file, line := gdebug.CallerWithFilter([]string{utils.StackFilterKeyForGoFrame}) preBindItems = append(preBindItems, &preBindItem{ @@ -275,7 +275,7 @@ func (g *RouterGroup) preBindToLocalArray(bindType string, pattern string, objec return g } -// getPrefix returns the route prefix of the group, which recursively retrieves its parent's prefixo. +// getPrefix returns the route prefix of the group, which recursively retrieves its parent's prefix. func (g *RouterGroup) getPrefix() string { prefix := g.prefix parent := g.parent @@ -317,7 +317,7 @@ func (g *RouterGroup) doBindRoutersToServer(ctx context.Context, item *preBindIt // Filter repeated char '/'. pattern = gstr.Replace(pattern, "//", "/") - // Convert params to string array. + // Convert params to a string array. extras := gconv.Strings(params) // Check whether it's a hook handler. @@ -384,7 +384,7 @@ func (g *RouterGroup) doBindRoutersToServer(ctx context.Context, item *preBindIt Middleware: g.middleware, Source: source, } - // At last, it treats the `object` as Object registering type. + // Finally, it treats the `object` as the Object registering type. if g.domain != nil { g.domain.doBindObject(ctx, in) } else { diff --git a/net/ghttp/ghttp_server_router_hook.go b/net/ghttp/ghttp_server_router_hook.go index 6c53b05d015..c5f6f255a1f 100644 --- a/net/ghttp/ghttp_server_router_hook.go +++ b/net/ghttp/ghttp_server_router_hook.go @@ -25,6 +25,7 @@ func (s *Server) BindHookHandler(pattern string, hook string, handler HandlerFun }) } +// doBindHookHandlerInput is the input for BindHookHandler. type doBindHookHandlerInput struct { Prefix string Pattern string @@ -33,6 +34,7 @@ type doBindHookHandlerInput struct { Source string } +// doBindHookHandler is the internal handler for BindHookHandler. func (s *Server) doBindHookHandler(ctx context.Context, in doBindHookHandlerInput) { s.setHandler( ctx, @@ -53,6 +55,7 @@ func (s *Server) doBindHookHandler(ctx context.Context, in doBindHookHandlerInpu ) } +// BindHookHandlerByMap registers handler for specified hook. func (s *Server) BindHookHandlerByMap(pattern string, hookMap map[string]HandlerFunc) { for k, v := range hookMap { s.BindHookHandler(pattern, k, v) diff --git a/net/ghttp/ghttp_server_router_middleware.go b/net/ghttp/ghttp_server_router_middleware.go index 74a3d483ab1..d34391a3884 100644 --- a/net/ghttp/ghttp_server_router_middleware.go +++ b/net/ghttp/ghttp_server_router_middleware.go @@ -65,7 +65,7 @@ func (s *Server) BindMiddlewareDefault(handlers ...HandlerFunc) { } } -// Use is alias of BindMiddlewareDefault. +// Use is the alias of BindMiddlewareDefault. // See BindMiddlewareDefault. func (s *Server) Use(handlers ...HandlerFunc) { s.BindMiddlewareDefault(handlers...) diff --git a/net/ghttp/ghttp_server_router_serve.go b/net/ghttp/ghttp_server_router_serve.go index 58318341c33..8f5f5788e1e 100644 --- a/net/ghttp/ghttp_server_router_serve.go +++ b/net/ghttp/ghttp_server_router_serve.go @@ -37,7 +37,7 @@ func (s *Server) serveHandlerKey(method, path, domain string) string { return strings.ToUpper(method) + ":" + path + strings.ToLower(domain) } -// getHandlersWithCache searches the router item with cache feature for given request. +// getHandlersWithCache searches the router item with cache feature for a given request. func (s *Server) getHandlersWithCache(r *Request) (parsedItems []*handlerParsedItem, hasHook, hasServe bool) { var ( ctx = r.Context() @@ -74,7 +74,7 @@ func (s *Server) getHandlersWithCache(r *Request) (parsedItems []*handlerParsedI return } -// searchHandlers retrieves and returns the routers with given parameters. +// searchHandlers retrieve and returns the routers with given parameters. // Note that the returned routers contain serving handler, middleware handlers and hook handlers. func (s *Server) searchHandlers(method, path, domain string) (parsedItems []*handlerParsedItem, hasHook, hasServe bool) { if len(path) == 0 { @@ -109,16 +109,16 @@ func (s *Server) searchHandlers(method, path, domain string) (parsedItems []*han repeatHandlerCheckMap = make(map[int]struct{}, 16) ) - // Default domain has the most priority when iteration. + // The default domain has the most priority when iteration. for _, domainItem := range []string{DefaultDomainName, domain} { p, ok := s.serveTree[domainItem] if !ok { continue } - // Make a list array with capacity of 16. + // Make a list array with a capacity of 16. lists := make([]*glist.List, 0, 16) for i, part := range array { - // Add all list of each node to the list array. + // Add all lists of each node to the list array. if v, ok := p.(map[string]interface{})["*list"]; ok { lists = append(lists, v.(*glist.List)) } @@ -153,7 +153,7 @@ func (s *Server) searchHandlers(method, path, domain string) (parsedItems []*han for i := len(lists) - 1; i >= 0; i-- { for e := lists[i].Front(); e != nil; e = e.Next() { item := e.Value.(*handlerItem) - // Filter repeated handler item, especially the middleware and hook handlers. + // Filter repeated handler items, especially the middleware and hook handlers. // It is necessary, do not remove this checks logic unless you really know how it is necessary. if _, ok := repeatHandlerCheckMap[item.Id]; ok { continue @@ -183,7 +183,7 @@ func (s *Server) searchHandlers(method, path, domain string) (parsedItems []*han } } switch item.Type { - // The serving handler can be only added just once. + // The serving handler can be added just once. case HandlerTypeHandler, HandlerTypeObject: hasServe = true parsedItemList.PushBack(parsedItem) diff --git a/net/ghttp/ghttp_server_service_handler.go b/net/ghttp/ghttp_server_service_handler.go index 0c7d3c954a6..458aed08277 100644 --- a/net/ghttp/ghttp_server_service_handler.go +++ b/net/ghttp/ghttp_server_service_handler.go @@ -17,7 +17,7 @@ import ( "github.com/gogf/gf/v2/text/gstr" ) -// BindHandler registers a handler function to server with given pattern. +// BindHandler registers a handler function to server with a given pattern. // // Note that the parameter `handler` can be type of: // 1. func(*ghttp.Request) @@ -101,7 +101,7 @@ func (s *Server) mergeBuildInNameToPattern(pattern string, structName, methodNam return uri } -// nameToUri converts the given name to URL format using following rules: +// nameToUri converts the given name to the URL format using the following rules: // Rule 0: Convert all method names to lowercase, add char '-' between words. // Rule 1: Do not convert the method name, construct the URI with the original method name. // Rule 2: Convert all method names to lowercase, no connecting symbols between words. diff --git a/net/ghttp/ghttp_server_service_object.go b/net/ghttp/ghttp_server_service_object.go index a3b74e6633d..bae4bfe7d0a 100644 --- a/net/ghttp/ghttp_server_service_object.go +++ b/net/ghttp/ghttp_server_service_object.go @@ -17,10 +17,10 @@ import ( "github.com/gogf/gf/v2/text/gstr" ) -// BindObject registers object to server routes with given pattern. +// BindObject registers object to server routes with a given pattern. // // The optional parameter `method` is used to specify the method to be registered, which -// supports multiple method names, multiple methods are separated by char ',', case-sensitive. +// supports multiple method names; multiple methods are separated by char ',', case-sensitive. func (s *Server) BindObject(pattern string, object interface{}, method ...string) { var ( bindMethod = "" @@ -38,10 +38,10 @@ func (s *Server) BindObject(pattern string, object interface{}, method ...string }) } -// BindObjectMethod registers specified method of object to server routes with given pattern. +// BindObjectMethod registers specified method of the object to server routes with a given pattern. // // The optional parameter `method` is used to specify the method to be registered, which -// does not supports multiple method names but only one, case-sensitive. +// does not support multiple method names but only one, case-sensitive. func (s *Server) BindObjectMethod(pattern string, object interface{}, method string) { s.doBindObjectMethod(context.TODO(), doBindObjectMethodInput{ Prefix: "", @@ -53,7 +53,7 @@ func (s *Server) BindObjectMethod(pattern string, object interface{}, method str }) } -// BindObjectRest registers object in REST API styles to server with specified pattern. +// BindObjectRest registers object in REST API styles to server with a specified pattern. func (s *Server) BindObjectRest(pattern string, object interface{}) { s.doBindObjectRest(context.TODO(), doBindObjectInput{ Prefix: "", diff --git a/net/ghttp/ghttp_server_session.go b/net/ghttp/ghttp_server_session.go index 3477dd2edfb..f6ceade9572 100644 --- a/net/ghttp/ghttp_server_session.go +++ b/net/ghttp/ghttp_server_session.go @@ -8,6 +8,6 @@ package ghttp import "github.com/gogf/gf/v2/os/gsession" -// Session is actually a alias of gsession.Session, +// Session is actually an alias of gsession.Session, // which is bound to a single request. type Session = gsession.Session diff --git a/net/ghttp/ghttp_server_websocket.go b/net/ghttp/ghttp_server_websocket.go index 2dbde255e91..96a56f3596d 100644 --- a/net/ghttp/ghttp_server_websocket.go +++ b/net/ghttp/ghttp_server_websocket.go @@ -15,23 +15,23 @@ type WebSocket struct { } const ( - // WsMsgText TextMessage denotes a text data message. The text message payload is - // interpreted as UTF-8 encoded text data. + // WsMsgText TextMessage denotes a text data message. + // The text message payload is interpreted as UTF-8 encoded text data. WsMsgText = websocket.TextMessage // WsMsgBinary BinaryMessage denotes a binary data message. WsMsgBinary = websocket.BinaryMessage - // WsMsgClose CloseMessage denotes a close control message. The optional message - // payload contains a numeric code and text. Use the FormatCloseMessage - // function to format a close message payload. + // WsMsgClose CloseMessage denotes a close control message. + // The optional message payload contains a numeric code and text. + // Use the FormatCloseMessage function to format a close message payload. WsMsgClose = websocket.CloseMessage - // WsMsgPing PingMessage denotes a ping control message. The optional message payload - // is UTF-8 encoded text. + // WsMsgPing PingMessage denotes a ping control message. + // The optional message payload is UTF-8 encoded text. WsMsgPing = websocket.PingMessage - // WsMsgPong PongMessage denotes a pong control message. The optional message payload - // is UTF-8 encoded text. + // WsMsgPong PongMessage denotes a pong control message. + // The optional message payload is UTF-8 encoded text. WsMsgPong = websocket.PongMessage )