mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 14:22:26 +08:00
feat:rpc gs增加gm接口
This commit is contained in:
@@ -9,7 +9,10 @@ import (
|
||||
|
||||
"hk4e/common/config"
|
||||
"hk4e/gm/controller"
|
||||
"hk4e/gm/rpc_client"
|
||||
"hk4e/pkg/logger"
|
||||
|
||||
"github.com/nats-io/nats.go"
|
||||
)
|
||||
|
||||
func Run(ctx context.Context, configFile string) error {
|
||||
@@ -18,7 +21,18 @@ func Run(ctx context.Context, configFile string) error {
|
||||
logger.InitLogger("gm", config.CONF.Logger)
|
||||
logger.LOG.Info("gm start")
|
||||
|
||||
_ = controller.NewController()
|
||||
conn, err := nats.Connect(config.CONF.MQ.NatsUrl)
|
||||
if err != nil {
|
||||
logger.LOG.Error("connect nats error: %v", err)
|
||||
return err
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
rpc, err := rpc_client.New(conn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_ = controller.NewController(rpc)
|
||||
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
|
||||
|
||||
@@ -5,16 +5,19 @@ import (
|
||||
"strconv"
|
||||
|
||||
"hk4e/common/config"
|
||||
"hk4e/gm/rpc_client"
|
||||
"hk4e/pkg/logger"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type Controller struct {
|
||||
rpc *rpc_client.Client
|
||||
}
|
||||
|
||||
func NewController() (r *Controller) {
|
||||
func NewController(rpc *rpc_client.Client) (r *Controller) {
|
||||
r = new(Controller)
|
||||
r.rpc = rpc
|
||||
go r.registerRouter()
|
||||
return r
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"hk4e/gs/api"
|
||||
"hk4e/pkg/logger"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -17,5 +20,14 @@ func (c *Controller) gmCmd(context *gin.Context) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
rep, err := c.rpc.Cmd(context.Request.Context(), &api.CmdRequest{
|
||||
FuncName: gmCmdReq.FuncName,
|
||||
Param: gmCmdReq.Param,
|
||||
})
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, err)
|
||||
return
|
||||
}
|
||||
context.JSON(http.StatusOK, rep)
|
||||
logger.LOG.Info("%v", gmCmdReq)
|
||||
}
|
||||
|
||||
29
gm/rpc_client/client.go
Normal file
29
gm/rpc_client/client.go
Normal file
@@ -0,0 +1,29 @@
|
||||
// Package rpc_client rpc客户端
|
||||
package rpc_client
|
||||
|
||||
import (
|
||||
"hk4e/gs/api"
|
||||
|
||||
"github.com/nats-io/nats.go"
|
||||
"github.com/nats-io/nats.go/encoders/protobuf"
|
||||
)
|
||||
|
||||
// Client rpc客户端
|
||||
type Client struct {
|
||||
api.GMNATSRPCClient
|
||||
}
|
||||
|
||||
// New 构造
|
||||
func New(conn *nats.Conn) (*Client, error) {
|
||||
enc, err := nats.NewEncodedConn(conn, protobuf.PROTOBUF_ENCODER)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cli, err := api.NewGMNATSRPCClient(enc)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &Client{
|
||||
GMNATSRPCClient: cli,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user