package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "go.hoteas.com/hotime" "golang.org/x/net/websocket" ) func main() { appIns := hotime.Application{} i := 0 appIns.SetConnectListener(func(context *hotime.Context) bool { fmt.Println(i) i++ //this.HandlerStr = "/test.html" return true }) //手动模式, appIns.SetConfig() appIns.SetConnectDB(func(err ...*hotime.Error) *sql.DB { query := appIns.Config.GetString("dbUser") + ":" + appIns.Config.GetString("dbPwd") + "@tcp(" + appIns.Config.GetString("dbHost") + ":" + appIns.Config.GetString("dbPort") + ")/" + appIns.Config.GetString("dbName") + "?charset=utf8" DB, e := sql.Open("mysql", query) if e != nil && len(err) != 0 { err[0].SetError(e) } return DB }) appIns.SetSession(hotime.CacheIns(&hotime.CacheMemory{}), hotime.CacheIns(&hotime.CacheDb{Db: &appIns.Db, Time: appIns.Config.GetInt64("cacheTime")})) appIns.SetCache(hotime.CacheIns(&hotime.CacheMemory{})) //快捷模式 //appIns.SetDefault(func(err ...*hotime.Error) *sql.DB { // query := appIns.Config.GetString("dbUser") + ":" + appIns.Config.GetString("dbPwd") + // "@tcp(" + appIns.Config.GetString("dbHost") + ":" + appIns.Config.GetString("dbPort") + ")/" + appIns.Config.GetString("dbName") + "?charset=utf8" // DB, e := sql.Open("mysql", query) // if e != nil && len(err) != 0 { // err[0].SetError(e) // } // return DB //}) appIns.Run(hotime.Router{ "app": hotime.Proj{ "index": hotime.Ctr{ "test": func(this *hotime.Context) { this.Display(0, "chenggong") }, "websocket": func(this *hotime.Context) { hdler := websocket.Handler(func(ws *websocket.Conn) { for true { msg := make([]byte, 5120) n, err := ws.Read(msg) if err != nil { return } fmt.Printf("Receive: %s\n", msg[:n]) send_msg := "[" + string(msg[:n]) + "]" m, err := ws.Write([]byte(send_msg)) if err != nil { return } fmt.Printf("Send: %s\n", msg[:m]) } }) hdler.ServeHTTP(this.Resp, this.Req) }, }, }, }) }