From 0ccc6306b7def1bed1eb70d7080e8c7f975e76ef Mon Sep 17 00:00:00 2001 From: Laoliu Date: Tue, 1 Nov 2016 18:59:32 +0800 Subject: [PATCH] Update hprose 2.0 --- hproseapp.go | 59 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/hproseapp.go b/hproseapp.go index e6f7e1c..82d3dad 100644 --- a/hproseapp.go +++ b/hproseapp.go @@ -10,7 +10,7 @@ * * * Build rpc application use Hprose base on beego * * * - * LastModified: Oct 13, 2014 * + * LastModified: Oct 31, 2016 * * Author: Liu jian * * * \**********************************************************/ @@ -63,16 +63,41 @@ EnableDocs = true var hproseMaingo = `package main import ( + "fmt" + "reflect" + "{{.Appname}}/models" - "github.com/hprose/hprose-go/hprose" + "github.com/hprose/hprose-golang/rpc" "github.com/astaxie/beego" ) +func logInvokeHandler( + name string, + args []reflect.Value, + context rpc.Context, + next rpc.NextInvokeHandler) (results []reflect.Value, err error) { + fmt.Printf("%s(%v) = ", name, args) + results, err = next(name, args, context) + fmt.Printf("%v %v\r\n", results, err) + return +} + func main() { - service := hprose.NewHttpService() + // Create WebSocketServer + // service := rpc.NewWebSocketService() + + // Create Http Server + service := rpc.NewHTTPService() + + // Use Logger Middleware + service.AddInvokeHandler(logInvokeHandler) + + // Publish Functions service.AddFunction("AddOne", models.AddOne) service.AddFunction("GetOne", models.GetOne) + + // Start Service beego.Handler("/", service) beego.Run() } @@ -81,8 +106,11 @@ func main() { var hproseMainconngo = `package main import ( + "fmt" + "reflect" + "{{.Appname}}/models" - "github.com/hprose/hprose-go/hprose" + "github.com/hprose/hprose-golang/rpc" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" @@ -93,9 +121,30 @@ func init() { orm.RegisterDataBase("default", "{{.DriverName}}", "{{.conn}}") } +func logInvokeHandler( + name string, + args []reflect.Value, + context rpc.Context, + next rpc.NextInvokeHandler) (results []reflect.Value, err error) { + fmt.Printf("%s(%v) = ", name, args) + results, err = next(name, args, context) + fmt.Printf("%v %v\r\n", results, err) + return +} + func main() { - service := hprose.NewHttpService() + // Create WebSocketServer + // service := rpc.NewWebSocketService() + + // Create Http Server + service := rpc.NewHTTPService() + + // Use Logger Middleware + service.AddInvokeHandler(logInvokeHandler) + {{HproseFunctionList}} + + // Start Service beego.Handler("/", service) beego.Run() }