forked from golang/hotime
78 lines
2.0 KiB
Go
78 lines
2.0 KiB
Go
package main
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"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)
|
|
},
|
|
},
|
|
},
|
|
})
|
|
}
|