Пример #1
0
//	手动进行参数设置的演示
func GetLeafveinServer(option leafveingo.ServerOption) *leafveingo.LeafveinServer {

	//	new server
	//	create project directory and file:
	//		$GOPATH/samplebuild/sample				// by appName create
	//		$GOPATH/samplebuild/sample/config		// config files
	//		$GOPATH/samplebuild/sample/template		// template files
	//		$GOPATH/samplebuild/sample/webRoot		// web static file access directory
	//		$GOPATH/samplebuild/src					// source files
	//		$GOPATH/samplebuild/main.go				// main file
	//
	server := leafveingo.NewLeafveinServer("sample", option)

	//	手动设置配置
	if 0 != len(option.ConfigPath) {
		return server
	}

	//	设置app版本信息
	server.SetAppVersion("1.0")

	//	设置静态文件后缀
	server.SetStaticFileSuffixes(".js", ".css", ".png", ".jpg", ".gif", ".ico", ".html")

	//	设置相应输出写入是使用压缩,默认gzip优先,主要看浏览器支持的压缩类型,默认是为true的。
	server.SetRespWriteCompress(true)

	//	使用模版时,是否将html去除空格和换行符,默认true
	server.SetCompactHTML(true)

	//	设置请求时,是否将url忽略大小写处理。
	server.SetReqPathIgnoreCase(true)

	//	演示设置session的最大有效时间,默认30分钟
	server.SetSessionMaxlifeTime(1800)

	//	设置模板后缀,默认是.tpl
	server.SetTemplateSuffix(".tpl")

	//	上传文件大小设置
	//	最大上传32M
	server.SetFileUploadSize(32 << 20)

	//	html使用的字符编码
	server.SetCharset("utf-8")

	//	http 服务请求或响应超时的时间设置,秒为单位,默认0
	server.SetServerTimeout(0)

	return server
}
Пример #2
0
func main() {
	//	配置日志管理,这个需要手动配置
	leafveingo.SetLogManager(leafveingo.DEFAULT_LOG_CHANNEL_SIZE)

	/*
		---------------------------------------------------------------------------------
		多项目继承的演示
		1. 同一个端口配置不同的host(www.slowfei.com||blog.slowfei.com)进行访问
		2. admin后台管理 配置另一个端口进行访问
		3. https 演示操作

			   编译 go build
		开发模式启动 ./multiproject_samplebuild -devel
		启动后浏览器打开地址:http://localhost:8080/index.html
		---------------------------------------------------------------------------------
	*/

	/*
		-----------------
		slowfei.com and blog.slowfei.com server
	*/
	option := leafveingo.DefaultOption().SetConfigPath("multiproject/config/app.conf").SetAddr("127.0.0.1").SetPort(8080).SetSMGCTime(300)
	server := leafveingo.NewLeafveinServer("multiproject", option)

	//	添加多项目的支持,在同一个端口下
	//	create project directory and file:
	//		$GOPATH/multiproject_samplebuild/multiproject								// by appName create
	//		$GOPATH/multiproject_samplebuild/multiproject/config						// config files
	//		$GOPATH/multiproject_samplebuild/multiproject/template/slowfei.com			// template files
	//		$GOPATH/multiproject_samplebuild/multiproject/template/blog.slowfei.com		// template files
	//		$GOPATH/multiproject_samplebuild/multiproject/webRoot/slowfei.com			// web static file access directory
	//		$GOPATH/multiproject_samplebuild/multiproject/webRoot/blog.slowfei.com		// web static file access directory
	//		$GOPATH/multiproject_samplebuild/src										// source files
	//		$GOPATH/multiproject_samplebuild/main.go									// main file
	//
	//		www.slowfei.com use slowfei.com
	//		注意:添加("localhost") 主要是为了方便演示,进入引导的静态页面。
	server.SetMultiProjectHosts("slowfei.com", "blog.slowfei.com", "localhost")
	//	手动设置 tls 配置参数
	server.SetHttpTLS("multiproject/config/cert.pem", "multiproject/config/key.pem", 8081, false)

	/*
		slowfei.com 路由操作
		controller 需要设置相应的 host 否则无法访问
		SetScheme 设置路由的访问scheme,默认是同时支持 http || https
	*/
	wwwOption := router.DefaultReflectRouterOption().SetHost("slowfei.com").SetScheme(leafveingo.URI_SCHEME_HTTP)
	server.AddRouter(router.CreateReflectControllerWithOption("/", www.WWWController{}, wwwOption))

	//	https 访问登录页面
	//	注意这里是使用 RESTful router 控制器
	wwwLoginOption := router.DefaultRESTfulRouterOption().SetHost("slowfei.com").SetScheme(leafveingo.URI_SCHEME_HTTPS)
	server.AddRouter(router.CreateRESTfulControllerWithOption("/login", www.WWWLoginController{}, wwwLoginOption))

	/*
		blog.slowfei.com 路由操作
	*/
	blogOption := router.DefaultReflectRouterOption().SetHost("blog.slowfei.com")
	server.AddRouter(router.CreateReflectControllerWithOption("/", blog.BlogController{}, blogOption))

	/*
		-----------------
		admin server
		将后台管理的服务用另一个端口进行访问
		SetPort(0)默认会配置8080。
		如果需要只开启https SetPort(0)可以随意设置,但是SetHttpTLS(...,...,true) aloneRun必须设置独立运行
	*/
	optionAdmin := leafveingo.DefaultOption().SetConfigPath("admin/config/app.conf").SetAddr("127.0.0.1").SetPort(0).SetSMGCTime(300)
	serverAdmin := leafveingo.NewLeafveinServer("admin", optionAdmin)
	serverAdmin.SetHttpTLS("multiproject/config/cert.pem", "multiproject/config/key.pem", 8090, true)

	// 后台支持https访问
	adminRouterOption := router.DefaultReflectRouterOption().SetScheme(leafveingo.URI_SCHEME_HTTPS)
	serverAdmin.AddRouter(router.CreateReflectControllerWithOption("/", &admin.AdminController{}, adminRouterOption))

	leafveingo.Start()
}
Пример #3
0
	`

	Template_HTML = `
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Template</title>
</head>
<body>
	<h1>Hello Template {{.}}.</h1>
</body>
</html>
	`

	Server = lv.NewLeafveinServer("TestRouter", lv.DefaultOption())
)

func init() {
	// runtime.GOMAXPROCS(runtime.NumCPU())
	SFLog.StartLogManager(3000)
	SFLog.LoadConfigByJson([]byte(LogConfigNone))

	Server.AddRouter(CreateReflectController("/temp/", TestReflectController{}))
	Server.AddRouter(CreateReflectController("/temp2/", TestReflectController{}))
	Server.AddRouter(CreateReflectController("/temp3/", TestReflectController{}))
	Server.AddRouter(CreateReflectController("/placeholder/", TestReflectController{}))
	Server.AddRouter(CreateReflectController("/placeholder2/", TestReflectController{}))
	Server.AddRouter(CreateReflectController("/placeholder3/", TestReflectController{}))
	Server.AddRouter(CreateReflectController("/url/", TestReflectController{}))
	Server.AddRouter(CreateReflectController("/url2/", TestReflectController{}))