diff --git a/.gitignore b/.gitignore index 0d81d01..8303b63 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea +.vscode vendor bin protos @@ -13,4 +14,5 @@ logs doc/draw.md luaban_examples -*cache.meta \ No newline at end of file +*cache.meta +*.DS_Store \ No newline at end of file diff --git a/Makefile b/Makefile index cb052dd..7f07c02 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,12 @@ WORKSPACE=. GEN_CLIENT=${WORKSPACE}/luban_examples/Tools/Luban.Client/Luban.Client.dll CONF_ROOT=${WORKSPACE}/DesignerConfigs +# deploy +DEPLOYIP=192.168.0.100 +DEPLOYNAME=zhaolu +DEPLOYPASSWD=zhaolu +DEPLOYDIR=/Users/zhaolu/Documents/pro2d + test: go run cmd/test/main.go http: @@ -35,7 +41,7 @@ doc: proto: protoc -I./protos --go_out=./protos --go-grpc_out=./protos ./protos/*proto protoc-go-inject-tag -input=./pb/*.pb.go - python3 tools/generator.py + python tools/generator.py #python3 excel: cd ${WORKSPACE}/DesignerConfigs && git pull && cd - @@ -55,6 +61,8 @@ pull: docker-build: # docker build -t my-tab -f /abc/defg/my-dockerfile /context-dir docker build -t pro2d -f docker/Dockerfile ./ --force-rm +docker-save: + docker save pro2d > docker/pro2d.tar docker-http: docker rm -f http-pro2d @@ -64,11 +72,14 @@ docker-game: docker rm -f game-pro2d docker run --restart=always -d -p 8850:8850 --name game-pro2d pro2d ./game -save: docker-build - docker save pro2d > docker/pro2d.tar - scp docker/* zhaolu@192.168.0.100:/Users/zhaolu/Documents/pro2d #passwd: zhaolu +deploy: + scp docker/* ${DEPLOYNAME}@${DEPLOYIP}:${DEPLOYDIR} #passwd: zhaolu + rm -f docker/pro2d.tar + ssh ${DEPLOYNAME}@${DEPLOYIP} "/Users/zhaolu/Documents/pro2d/restart.sh" +deploy-to: docker-build docker-save + scp docker/* ${DEPLOYNAME}@${DEPLOYIP}:${DEPLOYDIR} #passwd: zhaolu rm -f docker/pro2d.tar - ssh zhaolu@192.168.0.100 "/Users/zhaolu/Documents/pro2d/restart.sh" + ssh ${DEPLOYNAME}@${DEPLOYIP} "${DEPLOYDIR}/restart.sh" .PHONY: all build protos test cert plugin doc proto pull \ No newline at end of file diff --git a/README.md b/README.md index 9534f24..a013714 100644 --- a/README.md +++ b/README.md @@ -46,14 +46,18 @@ ``` ## 环境安装 +protoc二进制下载地址: https://github.com/protocolbuffers/protobuf/releases/tag/v21.0-rc2 +>win下载3.8版本。其他平台随意,没遇到问题。 + protoc-go-inject-tag: 目的是往protos文件中打入自定义标签 ```shell $ go get github.com/favadi/protoc-go-inject-tag ``` -etcd +protoc-go & etcd ```shell $ go get go.etcd.io/etcd/client/v3 +$ go get google.golang.org/protobuf/cmd/protoc-gen-go $ go install google.golang.org/protobuf/cmd/protoc-gen-go $ go get google.golang.org/grpc/cmd/protoc-gen-go-grpc $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc diff --git a/cmd/gameserver/action/RoleAction.go b/cmd/gameserver/action/RoleAction.go index c07d854..1ede1fe 100644 --- a/cmd/gameserver/action/RoleAction.go +++ b/cmd/gameserver/action/RoleAction.go @@ -4,6 +4,7 @@ package action import ( "fmt" "github.com/golang/protobuf/proto" + "go.mongodb.org/mongo-driver/bson" "pro2d/common" "pro2d/common/components" "pro2d/common/db/mongoproxy" @@ -161,12 +162,18 @@ func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, in logger.Error("loginRpc err: %v", err) return 1, nil } - - if err := mongoproxy.DelOne("equipment", "id", req.Id); err != nil { + filter := make(bson.D, 5) + for _, id := range req.Id { + filter = append(filter, bson.E{Key: "id", Value: id}) + } + if err := mongoproxy.DelMany("equipment", filter); err != nil { logger.Error(err.Error()) return 2, nil } - delete(role.Equipments, req.Id) + + for _, id := range req.Id { + delete(role.Equipments, id) + } return 0, nil } diff --git a/cmd/gameserver/main.go b/cmd/gameserver/main.go index 94c788e..df1bde0 100644 --- a/cmd/gameserver/main.go +++ b/cmd/gameserver/main.go @@ -17,7 +17,7 @@ func main() { signal.Notify(stopChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL) userChan := make(chan os.Signal) - signal.Notify(userChan, syscall.SIGUSR1, syscall.SIGUSR2) + signal.Notify(userChan, syscall.SIGQUIT) common.GlobalSconf = common.GlobalConf.GameConf s, err1 := service.NewGameServer() diff --git a/common/components/conn.go b/common/components/conn.go index 5bcd8bb..e095ab9 100644 --- a/common/components/conn.go +++ b/common/components/conn.go @@ -189,6 +189,7 @@ func (c *Connection) write() { logger.Error("write Flush fail err: " + err.Error()) return } + logger.Debug("write n: %d", n) } } diff --git a/common/db/mongoproxy/mongoplugin.go b/common/db/mongoproxy/mongoplugin.go index 3f855bf..55fedd3 100644 --- a/common/db/mongoproxy/mongoplugin.go +++ b/common/db/mongoproxy/mongoplugin.go @@ -89,6 +89,11 @@ func DelOne(coll string, key string, value interface{}) error { return err } +func DelMany(coll string, filter bson.D) error { + _, err := mongoDatabase.Collection(coll).DeleteMany(context.TODO(), filter, nil) + return err +} + func GetBsonD(key string, value interface{}) interface{} { return bson.D{{key, value}} } diff --git a/docker/restart.sh b/docker/restart.sh index 471d661..bf7b2d9 100644 --- a/docker/restart.sh +++ b/docker/restart.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh /usr/local/bin/docker-compose -f /Users/zhaolu/Documents/pro2d/docker-compose.yml down /usr/local/bin/docker load < /Users/zhaolu/Documents/pro2d/pro2d.tar diff --git a/go.mod b/go.mod index 7f85650..442da9f 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( go.etcd.io/etcd/api/v3 v3.5.2 go.etcd.io/etcd/client/v3 v3.5.2 go.mongodb.org/mongo-driver v1.8.3 - google.golang.org/protobuf v1.27.1 + google.golang.org/protobuf v1.28.0 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b ) @@ -28,6 +28,7 @@ require ( github.com/aliyun/credentials-go v1.2.1 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect + github.com/favadi/protoc-go-inject-tag v1.3.0 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-playground/locales v0.13.0 // indirect github.com/go-playground/universal-translator v0.17.0 // indirect @@ -60,6 +61,7 @@ require ( golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect google.golang.org/grpc v1.38.0 // indirect + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index ddea8ac..dc93c3c 100644 --- a/go.sum +++ b/go.sum @@ -62,6 +62,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/favadi/protoc-go-inject-tag v1.3.0 h1:JPrmsmc/uBShG85uY5xGZIa5WJ0IaNZn6LZhQR9tIQE= +github.com/favadi/protoc-go-inject-tag v1.3.0/go.mod h1:SSkUBgfqw2IJ2p7NPNKWk0Idwxt/qIt2LQgFPUgRGtc= github.com/garyburd/redigo v1.6.3 h1:HCeeRluvAgMusMomi1+6Y5dmFOdYV/JzoRrrbFlkGIc= github.com/garyburd/redigo v1.6.3/go.mod h1:rTb6epsqigu3kYKBnaF028A7Tf/Aw5s0cqA47doKKqw= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -354,6 +356,8 @@ google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 h1:TLkBREm4nIsEcexnCjgQd5GQWaHcqMzwQV0TX9pq8S0= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0/go.mod h1:DNq5QpG7LJqD2AamLZ7zvKE0DEpVl2BSEVjFycAAjRY= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -365,8 +369,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pb/account.pb.go b/pb/account.pb.go index a309fe2..a3d0549 100644 --- a/pb/account.pb.go +++ b/pb/account.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.17.3 +// protoc-gen-go v1.28.0 +// protoc v3.8.0 // source: account.proto package pb diff --git a/pb/game.pb.go b/pb/game.pb.go index ace1e6a..9cd0331 100644 --- a/pb/game.pb.go +++ b/pb/game.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.17.3 +// protoc-gen-go v1.28.0 +// protoc v3.8.0 // source: game.proto package pb @@ -820,7 +820,7 @@ type EquipmentDelReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id,omitempty"` } func (x *EquipmentDelReq) Reset() { @@ -855,11 +855,11 @@ func (*EquipmentDelReq) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{14} } -func (x *EquipmentDelReq) GetId() string { +func (x *EquipmentDelReq) GetId() []string { if x != nil { return x.Id } - return "" + return nil } //ResponseCmd EquipmentAddRsp @@ -983,7 +983,7 @@ var file_game_proto_rawDesc = []byte{ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, diff --git a/pb/models.pb.go b/pb/models.pb.go index 05f1e5e..5847cb5 100644 --- a/pb/models.pb.go +++ b/pb/models.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.17.3 +// protoc-gen-go v1.28.0 +// protoc v3.8.0 // source: models.proto package pb diff --git a/pb/protocode.pb.go b/pb/protocode.pb.go index ba185de..5eab4c6 100644 --- a/pb/protocode.pb.go +++ b/pb/protocode.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.17.3 +// protoc-gen-go v1.28.0 +// protoc v3.8.0 // source: protocode.proto package pb diff --git a/protos b/protos index 0157426..e987826 160000 --- a/protos +++ b/protos @@ -1 +1 @@ -Subproject commit 015742626c9deaa014003202fa6981a3fa9f9df9 +Subproject commit e98782647286257179822cb039bbbff1c15d4c36 -- libgit2 0.21.2