Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
load(
"@io_bazel_rules_go//proto:def.bzl",
"go_proto_library",
)
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = ["client_test.go"],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = [
"//app/service/main/broadcast/model:go_default_library",
"//library/log:go_default_library",
"//library/naming/discovery:go_default_library",
"//library/net/netutil/breaker:go_default_library",
"//library/net/rpc/warden:go_default_library",
"//library/net/rpc/warden/resolver:go_default_library",
"//library/time:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = [
"api.go",
"client.go",
],
embed = [":v1_go_proto"],
importpath = "go-common/app/interface/main/broadcast/api/grpc/v1",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/broadcast/model:go_default_library",
"//library/net/rpc/warden:go_default_library",
"@com_github_gogo_protobuf//gogoproto:go_default_library",
"@com_github_gogo_protobuf//proto:go_default_library",
"@org_golang_google_grpc//:go_default_library",
"@org_golang_x_net//context:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
proto_library(
name = "v1_proto",
srcs = ["api.proto"],
tags = ["automanaged"],
deps = [
"//app/service/main/broadcast/model:model_proto",
"@gogo_special_proto//github.com/gogo/protobuf/gogoproto",
],
)
go_proto_library(
name = "v1_go_proto",
compilers = ["@io_bazel_rules_go//proto:gogofast_grpc"],
importpath = "go-common/app/interface/main/broadcast/api/grpc/v1",
proto = ":v1_proto",
tags = ["manual"],
deps = [
"//app/service/main/broadcast/model:model_go_proto",
"@com_github_gogo_protobuf//gogoproto:go_default_library",
],
)

View File

@@ -0,0 +1,7 @@
package v1
import "strconv"
func (r *RoomsReply) String() string {
return strconv.FormatInt(int64(len(r.Rooms)), 10)
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,57 @@
// +bili:type=service
// Code generated by warden.
syntax = "proto3";
package push.interface.broadcast;
option go_package = "v1";
import "app/service/main/broadcast/model/model.proto";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
message Empty{}
message PushMsgReq {
repeated string keys = 1;
int32 protoOp = 3;
push.service.broadcast.model.Proto proto = 2;
}
message PushMsgReply {}
message BroadcastReq{
int32 protoOp = 1;
push.service.broadcast.model.Proto proto = 2;
int32 speed = 3;
string platform = 4;
}
message BroadcastReply{}
message BroadcastRoomReq {
string roomID = 1;
push.service.broadcast.model.Proto proto = 2;
}
message BroadcastRoomReply{}
message RoomsReq{}
message RoomsReply {
option (gogoproto.goproto_stringer) = false;
map<string,bool> rooms = 1;
}
service Zerg {
// Ping Service
rpc Ping(Empty) returns(Empty);
// Close Service
rpc Close(Empty) returns(Empty);
//PushMsg push by key or mid
rpc PushMsg(PushMsgReq) returns (PushMsgReply);
// Broadcast send to every enrity
rpc Broadcast(BroadcastReq) returns (BroadcastReply);
// BroadcastRoom broadcast to one room
rpc BroadcastRoom(BroadcastRoomReq) returns (BroadcastRoomReply);
// Rooms get all rooms
rpc Rooms(RoomsReq) returns (RoomsReply);
}

View File

@@ -0,0 +1,19 @@
package v1
import (
"context"
"go-common/library/net/rpc/warden"
"google.golang.org/grpc"
)
// NewClient new a client.
func NewClient(target string, cfg *warden.ClientConfig, opts ...grpc.DialOption) (ZergClient, error) {
client := warden.NewClient(cfg, opts...)
cc, err := client.Dial(context.Background(), target)
if err != nil {
return nil, err
}
return NewZergClient(cc), nil
}

View File

@@ -0,0 +1,83 @@
package v1
import (
"context"
"testing"
"time"
"go-common/app/service/main/broadcast/model"
"go-common/library/log"
"go-common/library/naming/discovery"
"go-common/library/net/netutil/breaker"
"go-common/library/net/rpc/warden"
"go-common/library/net/rpc/warden/resolver"
xtime "go-common/library/time"
)
func testInit() ZergClient {
log.Init(nil)
conf := &warden.ClientConfig{
Dial: xtime.Duration(time.Second * 10),
Timeout: xtime.Duration(time.Second * 10),
Breaker: &breaker.Config{
Window: xtime.Duration(3 * time.Second),
Sleep: xtime.Duration(3 * time.Second),
Bucket: 10,
Ratio: 0.3,
Request: 20,
},
}
wc := warden.NewClient(conf)
resolver.Register(discovery.New(nil))
conn, err := wc.Dial(context.TODO(), "discovery://default/push.interface.broadcast")
if err != nil {
panic(err)
}
return NewZergClient(conn)
}
func TestPushMsg(t *testing.T) {
client := testInit()
time.Sleep(10 * time.Second)
client.PushMsg(context.Background(), &PushMsgReq{
Keys: []string{"test"},
ProtoOp: model.OpSendMsg,
Proto: &model.Proto{
Ver: 0,
SeqId: 0,
Operation: model.OpSendMsgReply,
Body: []byte("{\"test1111111\"}"),
},
})
}
/*
func TestBroadcastMsg(t *testing.T) {
client := testInit()
client.Broadcast(context.Background(), 102, &model.Proto{
Ver: 0,
SeqId: 0,
Operation: define.OP_SEND_SMS_REPLY,
Body: []byte("{\"test broadcast 104\"}"),
})
}
func TestBroadcastRoom(t *testing.T) {
client := testInit()
client.BroadcastRoom(context.Background(), "test_room", &model.Proto{
Ver: 0,
SeqId: 0,
Operation: define.OP_SEND_SMS_REPLY,
Body: []byte("{\"test broadcast\"}"),
})
}
func TestRooms(t *testing.T) {
client := testInit()
rooms, err := client.Rooms(context.Background())
if err != nil {
t.Fatal(err)
}
t.Logf("TestRooms.rooms:%v", rooms)
}
*/