<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [概述] server.go是dotweb的web服務類,它提供了web服務對象的操作、管理。 [常量] ~~~ const ( DefaultGzipLevel = 9 // gzipScheme = "gzip" DefaultIndexPage = "index.html" ) ~~~ [type] ~~~ type ( //HttpServer定義 HttpServer struct { stdServer *http.Server router Router //路由 Modules []*HttpModule //處理模塊 DotApp *DotWeb //dotweb對象 sessionManager *session.SessionManager lock_session *sync.RWMutex //用戶session的線程安全 pool *pool binder Binder //用于把http請求參數初始化成go類型對象 render Renderer //用于模板處理 offline bool //用于判斷offline是否啟動 Features *feature.Feature //跨域處理 } //pool定義 pool struct { request sync.Pool response sync.Pool context sync.Pool } ) ~~~ pool類型定義了三個分別表示請求文、返回文、上下文的屬性,它們雖然是sync.Pool類型用于保證線程安全,但是它們是可以轉換成request、response、context對象,具體怎么操作,請閱讀dotweb源碼。 [func NewHttpServer()] ~~~ hs := dotweb.NewHttpServer() ~~~ 初始化并返回一個HttpServer對象。 [func (server *HttpServer) ServerConfig] ~~~ hs := dotweb.NewHttpServer() sc := hs.ServerConfig() ~~~ 獲取server的config對象,對應配置文件中的server節點。 [func (server *HttpServer) SessionConfig] ~~~ hs := dotweb.NewHttpServer() sc := hs.SessionConfig() ~~~ 獲取session的config對象,關于config相關內容請參考[dotweb-config-json](https://github.com/devfeel/dotweb-example/blob/master/config/dotweb.json.conf)。 [func (server *HttpServer) ListenAndServe] ~~~ hs := dotweb.NewHttpServer() hs.ListenAndServe(8080) ~~~ ListenAndServe偵聽TCP網絡地址srv.Addr,然后調用Serve處理傳入連接的請求。 [func (server *HttpServer) ListenAndServeTLS] ~~~ hs := dotweb.NewHttpServer() certFile, keyFile := "...", "..." //證書文件地址 hs.ListenAndServerTLS(8080, certFile, keyFile) ~~~ 啟動TLS監聽,同ListenAndServer相似,只是加了TLS。 [func (server *HttpServer) ServeHTTP] ~~~ 無示例代碼 ~~~ 你不需要關心ServerHTTP,它不會被顯式調用。 [func (server *HttpServer) IsOffline] ~~~ hs := dotweb.NewHttpServer() hs.IsOffline() ~~~ 判斷服務是否是離線服務。 [func (server *HttpServer) SetOffline] ~~~ ~~~ [func (server *HttpServer) IndexPage] ~~~ hs := dotweb.NewHttpServer() name := hs.IndexPage() ~~~ 獲取起始頁的名稱,該函數名有誤導嫌疑,所以后期會調整函數名。 [func (server *HttpServer) SetSessionConfig] ~~~ hs := dotweb.NewHttpServer() sc:=&session.StoreConfig{Maxlifetime:有效期,StoreName:Session模式,ServerIP:地址} hs.SetSession(sc) ~~~ 設置Session配置,Session模式是指session存在哪里。dotweb默認提供了runtime和redis兩種模式,更多點擊[dotweb-Session](https://github.com/devfeel/dotweb/blob/master/session/session.go) [func (server *HttpServer) InitSessionManager] ~~~ hs := dotweb.NewHttpServer() hs.InitSessionManger() ~~~ 初始化SessionManager,SessionManager用來管理dotweb-Session。詳細見Session文檔。 [func (server *HttpServer) GetSessionManager] ~~~ hs := dotweb.NewHttpServer() sm := hs.GetSessionManager() ~~~ 獲取SessionManager,如果為初始化則初始化,若dotweb配置禁用Session則返回nil。 [func (server *HttpServer) Router] ~~~ hs := dotweb.NewHttpServer() r := hs.Router() ~~~ 獲取路由對象,用于管理所有路由。 [關于一系列路由注冊函數] 這部分內容將在Router文檔中體現,在server文件中的路由注冊函數本質上也是調用Router對象的函數。(仿佛有人說我懶╮(╯▽╰)╭) [func (server *HttpServer) Group] ~~~ hs := dotweb.NewHttpServer() g := hs.Group("nunu") ~~~ 組對象用來管理路由。 [func (server *HttpServer) Binder] ~~~ hs := dotweb.NewHttpServer() b := hs.Binder() ~~~ 獲取Binder對象,Binder用于初始化http請求參數。 [func (server *HttpServer) Renderer] ~~~ hs := dotweb.NewHttpServer() r := hs.Renderer() ~~~ 獲取Renderer對象,它用于模板操作,我不建議在dotweb中使用html模板功能,Renderer只是為了非前后端分離設計。如果未設置Renderer則使用dotweb默認處理函數。 [func (server *HttpServer) SetRenderer] ~~~ hs := dotweb.NewHttpServer() r := new(Renderer) hs.SetRenderer(r) ~~~ 設置Renderer對象,它接受一個實現Renderer接口的結構體。 [func (server *HttpServer) SetEnabledAutoHEAD] ~~~ hs.SetEnabledAutoHEAD(true) ~~~ 設置是否自動啟用Head路由,若設置該項,則會為除Websocket\HEAD外所有路由方式默認添加HEAD路由,默認為false。 [func (server *HttpServer) SetEnabledListDir] ~~~ hs.SetEnabledListDir(true) ~~~ 設置是否允許目錄瀏覽,默認為false。 [func (server *HttpServer) SetEnabledSession] ~~~ hs.SetEnabledSession(true) ~~~ 設置是否啟用Session,默認為false。 [func (server *HttpServer) SetEnabledGzip] ~~~ hs.SetEnabledGzip(true) ~~~ 設置是否啟用gzip,默認為false。 [func (server *HttpServer) SetEnabledIgnoreFavicon] ~~~ hs.SetEnabledIgnoreFavicon(true) ~~~ 設置是否啟用Favicon,默認為false。如果啟用請在根目錄下放置favicon.ico文件,如果修改路徑請修改源碼或者覆蓋dotweb默認Module。 [func (server *HttpServer) SetEnabledTLS] ~~~ hs.SetEnabledTLS(true, "certFile路徑", "keyFile路徑") ~~~ 設置是否啟用TLS,默認為false。如果啟用需要傳入證書文件路徑。 [func (server *HttpServer) SetEnabledDetailRequestData] ~~~ hs.SetEnabledDetailRequestData(true) ~~~ 設置是否啟用詳細請求數據統計,默認為false。 [func (server *HttpServer) RegisterModule] ~~~ m := new(HttpModule) hs.RegisterModule(m) ~~~ 注冊處理模塊,上面SetEnabledIgnoreFavicon提到的Module就是使用此函數注冊Module,詳見[dotweb-Module](https://github.com/devfeel/dotweb/blob/master/module.go)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看