diff --git a/example/GateService/GateService.go b/example/GateService/GateService.go index 2963a66..b8c4f83 100644 --- a/example/GateService/GateService.go +++ b/example/GateService/GateService.go @@ -9,6 +9,8 @@ import ( "github.com/duanhf2012/origin/node" "github.com/duanhf2012/origin/service" "github.com/duanhf2012/origin/sysservice" + "github.com/duanhf2012/origin/util/timer" + "net/http" ) type GateService struct { @@ -29,9 +31,17 @@ func (slf *GateService) OnInit() error{ slf.httpRouter.GET("/get/query", slf.HttpTest) slf.httpRouter.POST("/post/query", slf.HttpTestPost) slf.httpRouter.SetServeFile(sysservice.METHOD_GET,"/img/head/","d:/img") + + pCronExpr,_ := timer.NewCronExpr("0 * * * * *") + slf.CronFunc(pCronExpr,slf.Test) + return nil } +func (slf *GateService) Test(){ + fmt.Print("xxxxx\n") +} + func (slf *GateService) HttpTest(session *sysservice.HttpSession) { session.SetHeader("a","b") session.Write([]byte("this is a test")) @@ -57,10 +67,11 @@ func (slf *GateService) HttpTestPost(session *sysservice.HttpSession) { testa.AA = 100 testa.BB = "this is a test" - session.WriteJson("asdasda") + session.WriteJsonDone(http.StatusOK,"asdasda") } func (slf *GateService) OnEventHandler(ev *event.Event) error{ + if ev.Type == event.Sys_Event_Tcp_RecvPack { pPack := ev.Data.(*sysservice.TcpPack) slf.processor.Route(ev.Data,pPack.ClientId) diff --git a/sysservice/httpservice.go b/sysservice/httpservice.go index 5a43629..e804cac 100644 --- a/sysservice/httpservice.go +++ b/sysservice/httpservice.go @@ -167,7 +167,6 @@ func (slf *HttpSession) DelHeader(key string) { slf.r.Header.Del(key) } - func (slf *HttpSession) WriteStatusCode(statusCode int){ slf.statusCode = statusCode } @@ -176,15 +175,18 @@ func (slf *HttpSession) Write(msg []byte) { slf.msg = msg } -func (slf *HttpSession) WriteJson(msgJson interface{}) error { +func (slf *HttpSession) WriteJsonDone(statusCode int,msgJson interface{}) error { msg, err := json.Marshal(msgJson) if err == nil { slf.Write(msg) } + slf.Done() return err } + + func (slf *HttpSession) flush() { slf.w.WriteHeader(slf.statusCode) if slf.msg!=nil { @@ -192,7 +194,7 @@ func (slf *HttpSession) flush() { } } -func (slf *HttpSession) done(){ +func (slf *HttpSession) Done(){ slf.sessionDone <- slf } @@ -259,7 +261,7 @@ func (slf *HttpRouter) Router(session *HttpSession){ if slf.httpFiltrateList!=nil { for _,fun := range slf.httpFiltrateList{ if fun(session) == false { - session.done() + //session.done() return } } @@ -278,7 +280,7 @@ func (slf *HttpRouter) Router(session *HttpSession){ } v.httpHandle(session) - session.done() + //session.done() return } @@ -286,13 +288,13 @@ func (slf *HttpRouter) Router(session *HttpSession){ idx := strings.Index(urlPath, k) if idx != -1 { session.fileData = v - session.done() + session.Done() return } } session.WriteStatusCode(http.StatusNotFound) - session.done() + session.Done() } func (slf *HttpService) SetHttpRouter(httpRouter IHttpRouter) {