Explorar o código

wip:rpc服务

wangshan hai 7 meses
pai
achega
e24ddc3b5e

+ 3 - 3
api/hello/hello.go

@@ -1,13 +1,13 @@
 // =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 
+// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
 // =================================================================================
 
 package hello
 
 import (
 	"context"
-	
-	"user/api/hello/v1"
+
+	"jygit.jydev.jianyu360.cn/wangshan/user/api/hello/v1"
 )
 
 type IHelloV1 interface {

+ 4 - 4
api/user/user.pb.go → api/user/v1/user.pb.go

@@ -4,7 +4,7 @@
 // 	protoc        v3.15.5
 // source: user/user.proto
 
-package user
+package v1
 
 import (
 	reflect "reflect"
@@ -129,9 +129,9 @@ var file_user_user_proto_rawDesc = []byte{
 	0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x53, 0x61, 0x79, 0x48, 0x65, 0x6c, 0x6c,
 	0x6f, 0x12, 0x0e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65,
 	0x71, 0x1a, 0x0e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65,
-	0x73, 0x22, 0x00, 0x42, 0x1d, 0x5a, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x61, 0x6e, 0x69,
-	0x66, 0x65, 0x73, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x75, 0x73,
-	0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x73, 0x22, 0x00, 0x42, 0x1d, 0x5a, 0x1b, 0x46, 0x3a, 0x2f, 0x67, 0x6f, 0x66, 0x72, 0x61, 0x6d,
+	0x65, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f,
+	0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (

+ 1 - 1
api/user/user_grpc.pb.go → api/user/v1/user_grpc.pb.go

@@ -4,7 +4,7 @@
 // - protoc             v3.15.5
 // source: user/user.proto
 
-package user
+package v1
 
 import (
 	context "context"

BIN=BIN
gfuser.exe


+ 5 - 3
go.mod

@@ -1,11 +1,13 @@
-module user
+module jygit.jydev.jianyu360.cn/wangshan/user
 
-go 1.18
+go 1.22
+
+toolchain go1.22.4
 
 require (
 	github.com/gogf/gf/contrib/rpc/grpcx/v2 v2.8.3
 	github.com/gogf/gf/v2 v2.8.3
-	google.golang.org/grpc v1.69.2
+	google.golang.org/grpc v1.64.1
 	google.golang.org/protobuf v1.36.1
 )
 

+ 6 - 4
go.sum

@@ -3,6 +3,7 @@ github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2
 github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
 github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
 github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
 github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
@@ -20,8 +21,8 @@ github.com/gogf/gf/contrib/rpc/grpcx/v2 v2.8.3 h1:T7iDtfKBKlLhpYQ/vDfuVxPNBvf9FF
 github.com/gogf/gf/contrib/rpc/grpcx/v2 v2.8.3/go.mod h1:bM0yW9w/wPsz8Stz7KpoblqDvgdEzOtvuEkD4tWSze8=
 github.com/gogf/gf/v2 v2.8.3 h1:h9Px3lqJnnH6It0AqHRz4/1hx0JmvaSf1IvUir5x1rA=
 github.com/gogf/gf/v2 v2.8.3/go.mod h1:n++xPYGUUMadw6IygLEgGZqc6y6DRLrJKg5kqCrPLWY=
-github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
 github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
@@ -41,17 +42,18 @@ github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh
 github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
 github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
 github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
 github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
 github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
+github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
 go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
 go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
 go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
 go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
 go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
-go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
 go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
 go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
 golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
@@ -64,8 +66,8 @@ golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
 golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
 google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 h1:X58yt85/IXCx0Y3ZwN6sEIKZzQtDEYaBWrDvErdXrRE=
 google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
-google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU=
-google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
+google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA=
+google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0=
 google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
 google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=

+ 10 - 1
internal/cmd/cmd.go

@@ -2,12 +2,15 @@ package cmd
 
 import (
 	"context"
+	"github.com/gogf/gf/contrib/rpc/grpcx/v2"
+	"github.com/gogf/gf/v2/os/glog"
+	"jygit.jydev.jianyu360.cn/wangshan/user/internal/controller/api"
 
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/net/ghttp"
 	"github.com/gogf/gf/v2/os/gcmd"
 
-	"user/internal/controller/hello"
+	"jygit.jydev.jianyu360.cn/wangshan/user/internal/controller/hello"
 )
 
 var (
@@ -16,6 +19,12 @@ var (
 		Usage: "main",
 		Brief: "start http server",
 		Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
+			go func() {
+				rpc := grpcx.Server.New()
+				api.Register(rpc)
+				rpc.Run()
+				glog.Info(ctx, "start  grpc ")
+			}()
 			s := g.Server()
 			s.Group("/", func(group *ghttp.RouterGroup) {
 				group.Middleware(ghttp.MiddlewareHandlerResponse)

+ 11 - 6
internal/controller/api/api.go

@@ -2,21 +2,26 @@ package api
 
 import (
 	"context"
-	"user/api/user"
-
 	"github.com/gogf/gf/contrib/rpc/grpcx/v2"
 	"github.com/gogf/gf/v2/errors/gcode"
 	"github.com/gogf/gf/v2/errors/gerror"
+	"github.com/gogf/gf/v2/os/glog"
+	"jygit.jydev.jianyu360.cn/wangshan/user/api/user/v1"
+	"jygit.jydev.jianyu360.cn/wangshan/user/internal/model/entity"
+	"jygit.jydev.jianyu360.cn/wangshan/user/internal/service"
 )
 
 type Controller struct {
-	user.UnimplementedUserServer
+	v1.UnimplementedUserServer
 }
 
 func Register(s *grpcx.GrpcServer) {
-	user.RegisterUserServer(s.Server, &Controller{})
+	v1.RegisterUserServer(s.Server, &Controller{})
 }
 
-func (*Controller) SayHello(ctx context.Context, req *user.HelloReq) (res *user.HelloRes, err error) {
-	return nil, gerror.NewCode(gcode.CodeNotImplemented)
+func (c *Controller) SayHello(ctx context.Context, req *v1.HelloReq) (res *v1.HelloRes, err error) {
+	glog.Info(ctx, "----------------", gerror.NewCode(gcode.CodeNotImplemented), "----", req.UserName)
+	res.Msg = service.User().GetMsg(ctx, &entity.MsgInfoInput{Name: req.GetUserName()}).Msg
+	glog.Info(ctx, "--------msg--------", res.Msg)
+	return
 }

+ 2 - 2
internal/controller/hello/hello_new.go

@@ -1,11 +1,11 @@
 // =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 
+// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
 // =================================================================================
 
 package hello
 
 import (
-	"user/api/hello"
+	"jygit.jydev.jianyu360.cn/wangshan/user/api/hello"
 )
 
 type ControllerV1 struct{}

+ 1 - 1
internal/controller/hello/hello_v1_hello.go

@@ -4,7 +4,7 @@ import (
 	"context"
 	"github.com/gogf/gf/v2/frame/g"
 
-	"user/api/hello/v1"
+	"jygit.jydev.jianyu360.cn/wangshan/user/api/hello/v1"
 )
 
 func (c *ControllerV1) Hello(ctx context.Context, req *v1.HelloReq) (res *v1.HelloRes, err error) {

+ 9 - 0
internal/logic/logic.go

@@ -0,0 +1,9 @@
+// ==========================================================================
+// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
+// ==========================================================================
+
+package logic
+
+import (
+	_ "jygit.jydev.jianyu360.cn/wangshan/user/internal/logic/user"
+)

+ 24 - 0
internal/logic/user/user.go

@@ -0,0 +1,24 @@
+package user
+
+import (
+	"context"
+	"fmt"
+	"jygit.jydev.jianyu360.cn/wangshan/user/internal/model/entity"
+	"jygit.jydev.jianyu360.cn/wangshan/user/internal/service"
+)
+
+type sUser struct {
+}
+
+func init() {
+	service.RegisterUser(New())
+}
+
+func New() *sUser {
+	return &sUser{}
+}
+
+func (s *sUser) GetMsg(ctx context.Context, in *entity.MsgInfoInput) (out *entity.MsgInfoOutput) {
+	out = &entity.MsgInfoOutput{Msg: fmt.Sprintf("Hello  %s", in.Name)}
+	return
+}

+ 9 - 0
internal/model/entity/entity.go

@@ -0,0 +1,9 @@
+package entity
+
+type MsgInfoInput struct {
+	Name string `json:"name"`
+}
+
+type MsgInfoOutput struct {
+	Msg string `json:"msg"`
+}

+ 33 - 0
internal/service/user.go

@@ -0,0 +1,33 @@
+// ================================================================================
+// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
+// You can delete these comments if you wish manually maintain this interface file.
+// ================================================================================
+
+package service
+
+import (
+	"context"
+
+	"jygit.jydev.jianyu360.cn/wangshan/user/internal/model/entity"
+)
+
+type (
+	IUser interface {
+		GetMsg(ctx context.Context, in *entity.MsgInfoInput) (out *entity.MsgInfoOutput)
+	}
+)
+
+var (
+	localUser IUser
+)
+
+func User() IUser {
+	if localUser == nil {
+		panic("implement not found for interface IUser, forgot register?")
+	}
+	return localUser
+}
+
+func RegisterUser(i IUser) {
+	localUser = i
+}

+ 4 - 2
main.go

@@ -1,11 +1,13 @@
 package main
 
 import (
-	_ "user/internal/packed"
+	_ "jygit.jydev.jianyu360.cn/wangshan/user/internal/packed"
+
+	_ "jygit.jydev.jianyu360.cn/wangshan/user/internal/logic"
 
 	"github.com/gogf/gf/v2/os/gctx"
 
-	"user/internal/cmd"
+	"jygit.jydev.jianyu360.cn/wangshan/user/internal/cmd"
 )
 
 func main() {

+ 1 - 1
manifest/protobuf/user/user.proto

@@ -2,7 +2,7 @@ syntax = "proto3"; // 指定proto3语法编译
 
 package user; // 协议包名
 
-option go_package = "user/manifest/protobuf/user"; // 生成go代码的文件的包名
+option go_package = "F:/goframe/user/api/user/v1"; // 生成go代码的文件的包名
 
 service User{
   rpc SayHello(HelloReq) returns (HelloRes) {} // rpc接口