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,56 @@
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_library",
)
proto_library(
name = "v1_proto",
srcs = ["api.proto"],
tags = ["automanaged"],
deps = ["@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/service/video/stream-mng/api/v1",
proto = ":v1_proto",
tags = ["automanaged"],
deps = ["@com_github_gogo_protobuf//gogoproto:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = [],
embed = [":v1_go_proto"],
importpath = "go-common/app/service/video/stream-mng/api/v1",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//vendor/golang.org/x/net/context: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",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,48 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_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 = ["@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/service/video/stream-mng/api/v1",
proto = ":v1_proto",
tags = ["automanaged"],
deps = ["@com_github_gogo_protobuf//gogoproto:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = ["client.go"],
embed = [":v1_go_proto"],
importpath = "go-common/app/service/video/stream-mng/api/v1",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//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",
],
)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,376 @@
syntax = "proto3";
package video.live.streamng.v1;
option go_package = "v1";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
// EmptyStruct 空的message对应真实service只返回error没有具体返回值
message EmptyStruct {
}
// ChangeSrcReq 切换上行
message ChangeSrcReq {
// 房间号
int64 room_id = 1;
// src
int64 src = 2;
// 来源平台
string source = 3;
// 操作人
string operate_name = 4;
// 原因
string reason = 5;
}
// ClearStreamStatusReq 清理互推
message ClearStreamStatusReq {
// 房间号
int64 room_id = 1;
}
// CloseReply CloseReply
message CloseReply {
}
// CloseReq CloseReq
message CloseReq {
}
// CreateOfficalStreamReply 创建流
message CreateOfficalStreamReply {
// 是否成功
bool success = 1;
}
// CreateOfficalStreamReq 创建流
message CreateOfficalStreamReq {
// 流名
string stream_name = 1;
// key
string key = 2;
// 房间号
int64 room_id = 3;
// 是否线下测试
string debug = 4;
// 线下测试必传
int64 uid = 5;
}
// AdapterStream 上行流信息
message AdapterStream {
// src
int64 src = 1;
// 房间号
int64 room_id = 2 [(gogoproto.jsontag) = "room_id"];
// 上行
int64 up_rank = 3 [(gogoproto.jsontag) = "up_rank"];
// 上行名称
string src_name = 4 [(gogoproto.jsontag) = "src_name"];
}
// GetAdapterStreamByStreamNameReply 适配PHP代码
message GetAdapterStreamByStreamNameReply {
// 流名map流具体信息
map<string, AdapterStream> list = 1;
}
// GetAdapterStreamByStreamNameReq 适配PHP代码
message GetAdapterStreamByStreamNameReq {
// 流名
string stream_names = 1 [(gogoproto.jsontag) = "stream_names"];
}
// LineList 线路信息
message LineList {
// 上行
int64 src = 1;
// 是否被使用
bool use = 2;
// 描述
string desc = 3;
}
// GetLineListByRoomIDReply 获取线路信息
message GetLineListByRoomIDReply {
// 线路信息, 多条
repeated LineList list = 1;
}
// GetLineListByRoomIDReq 获取线路信息
message GetLineListByRoomIDReq {
// 房间号
int64 room_id = 1;
}
// GetMultiScreenShotReply 获取批量截图
message GetMultiScreenShotReply {
// 房间号map截图地址
map<int64, string> list = 1;
}
// GetMultiScreenShotReq 获取批量截图
message GetMultiScreenShotReq {
// 房间号
string room_ids = 1;
// 时间戳
int64 ts = 2;
// channel 是否为鉴黄
string channel = 3;
}
// GetMultiStreamInfoReply 批量获取房间信息
message GetMultiStreamInfoReply {
// code
int32 code = 1;
// message
string message = 2;
// 房间号map流详细信息
map<uint32, StreamFullInfo> data = 3;
}
// GetMultiStreamInfoReq 批量获取房间信息
message GetMultiStreamInfoReq {
// 房间号
repeated uint32 room_ids = 1;
}
// GetOriginScreenShotPicReply 获取原图
message GetOriginScreenShotPicReply {
// 房间号map截图地址
map<int64, string> list = 1;
}
// GetOriginScreenShotPicReq 获取原图
message GetOriginScreenShotPicReq {
// 房间号
string room_ids = 1;
// 时间戳
int64 ts = 2;
}
// GetRoomIDByStreamNameReply 获取房间号
message GetRoomIDByStreamNameReply {
// 房间号
int64 room_id = 1;
}
// GetRoomIDByStreamNameReq 获取房间号
message GetRoomIDByStreamNameReq {
// 流名
string stream_name = 1;
}
// GetSingleScreeShotReply 获取单个截图
message GetSingleScreeShotReply {
// 截图列表
repeated string list = 1;
}
// GetSingleScreeShotReq 获取单个截图
message GetSingleScreeShotReq {
// 房间号
int64 room_id = 1;
// 开始时间
string start_time = 2;
// 结束时间
string end_time = 3;
// channel
string channel = 4;
}
// RoomSrcCheck 上行
message RoomSrcCheck {
// 上行
int64 src = 1;
// 是否被选择, 1或者0
int32 checked = 2;
// 上行名称
string desc = 3;
}
// GetSrcByRoomIDReply 获取上行信息
message GetSrcByRoomIDReply {
// 上行列表
repeated RoomSrcCheck list = 1;
}
// GetSrcByRoomIDReq 获取上行信息
message GetSrcByRoomIDReq {
// 房间号
int64 room_id = 1;
}
// GetStreamInfoReply 获取单个流信息
message GetStreamInfoReply {
// code
int32 code = 1;
// message
string message = 2;
// 流详细信息
StreamFullInfo data = 3;
}
// GetStreamInfoReq 获取单个流信息
message GetStreamInfoReq {
// 房间号
uint32 room_id = 1;
// 流名
string stream_name = 2;
}
// GetStreamLastTimeReply 获取最后推流时间
message GetStreamLastTimeReply {
// 最后推流时间, -1 正在推流
int64 last_time = 1;
}
// GetStreamLastTimeReq 获取最后推流时间
message GetStreamLastTimeReq {
// 房间号
int64 room_id = 1;
}
// GetStreamNameByRoomIDReply 获取流名
message GetStreamNameByRoomIDReply {
// 流名
string stream_name = 1;
}
// GetStreamNameByRoomIDReq 获取流名
message GetStreamNameByRoomIDReq {
// 房间号
int64 room_id = 1;
}
// GetUpStreamRtmpReply 获取上行推流地址
message GetUpStreamRtmpReply {
// 上行推流地址
UpStreamRtmp up = 1;
}
// GetUpStreamRtmpReq 获取上行推流地址
message GetUpStreamRtmpReq {
// 房间号
int64 room_id = 1;
// 免流
string free_flow = 2;
// ip
string ip = 3;
// 所在区域
int64 area_id = 4;
// 关注数
int32 attentions = 5;
// uid
int64 uid = 6;
// 平台
string platform = 7;
}
// StreamBase 流基本信息
message StreamBase {
// 流名
string stream_name = 1;
// 默认上行
uint32 default_upstream = 2 [(gogoproto.jsontag) = "default_upstream"];
// 正在推流上行
uint32 origin = 3;
// 转推cdn
repeated uint32 forward = 4;
// 主流1或者备用流2
uint32 type = 5;
// 推流码
string key = 6;
// options
uint32 options = 7;
}
// StreamFullInfo 流信息完整结构
message StreamFullInfo {
// 房间号
uint32 room_id = 1;
// 是否为冷热流
uint32 hot = 2;
// 流列表
repeated StreamBase list = 3;
}
// PingReply PingReply
message PingReply {
}
// PingReq PingReq
message PingReq {
}
// UpStreamRtmp 上行推流地址详细信息
message UpStreamRtmp {
// 推流地址
string addr = 1;
// 推流码
string code = 2;
// new link
string new_link = 3;
}
// StreamCutReq 切流
message StreamCutReq {
// 房间号
int64 room_id = 1;
// 切流时间
int64 cut_time = 2;
}
// TimeTime 时间
message TimeTime {
}
message CheckLiveStreamReq {
repeated int64 room_id = 1;
}
message CheckLiveStreamReply {
map<int64, bool> list = 1;
}
// Stream service
service Stream {
// GetSingleScreeShot
rpc GetSingleScreeShot (GetSingleScreeShotReq) returns (GetSingleScreeShotReply);
// GetMultiScreenShot
rpc GetMultiScreenShot (GetMultiScreenShotReq) returns (GetMultiScreenShotReply);
// GetOriginScreenShotPic
rpc GetOriginScreenShotPic (GetOriginScreenShotPicReq) returns (GetOriginScreenShotPicReply);
// CreateOfficeStream 创建正式流
rpc CreateOfficalStream (CreateOfficalStreamReq) returns (CreateOfficalStreamReply);
// GetStreamInfo 获取单个流信息
rpc GetStreamInfo (GetStreamInfoReq) returns (GetStreamInfoReply);
// GetMultiStreamInfo 批量获取流信息
rpc GetMultiStreamInfo (GetMultiStreamInfoReq) returns (GetMultiStreamInfoReply);
// ChangeSrc 切换cdn
rpc ChangeSrc (ChangeSrcReq) returns (EmptyStruct);
// GetStreamLastTime 得到流到最后推流时间;主流的推流时间up_rank = 1
rpc GetStreamLastTime (GetStreamLastTimeReq) returns (GetStreamLastTimeReply);
// GetStreamNameByRoomID 需要考虑备用流 + 考虑短号
rpc GetStreamNameByRoomID (GetStreamNameByRoomIDReq) returns (GetStreamNameByRoomIDReply);
// GetRoomIDByStreamName 查询房间号
rpc GetRoomIDByStreamName (GetRoomIDByStreamNameReq) returns (GetRoomIDByStreamNameReply);
// GetAdapterStreamByStreamName 适配结果输出, 此处也可以输入备用流, 该结果只输出直推上行
rpc GetAdapterStreamByStreamName (GetAdapterStreamByStreamNameReq) returns (GetAdapterStreamByStreamNameReply);
// GetSrcByRoomID
rpc GetSrcByRoomID (GetSrcByRoomIDReq) returns (GetSrcByRoomIDReply);
// GetLineListByRoomID
rpc GetLineListByRoomID (GetLineListByRoomIDReq) returns (GetLineListByRoomIDReply);
// GetUpStreamRtmp UpStream
rpc GetUpStreamRtmp (GetUpStreamRtmpReq) returns (GetUpStreamRtmpReply);
// StreamCut 切流的房间和时间, 内部调用
rpc StreamCut (StreamCutReq) returns (EmptyStruct);
// Ping Service
rpc Ping (PingReq) returns (PingReply);
// Close Service
rpc Close (CloseReq) returns (CloseReply);
// ClearRetweetRecord
rpc ClearStreamStatus (ClearStreamStatusReq) returns (EmptyStruct);
// CheckLiveStreamList
rpc CheckLiveStreamList(CheckLiveStreamReq) returns (CheckLiveStreamReply);
}

View File

@@ -0,0 +1,24 @@
package v1
import (
"context"
"fmt"
"go-common/library/net/rpc/warden"
"google.golang.org/grpc"
)
// DiscoveryAppID .
const DiscoveryAppID = "video.live.streamng"
// NewClient 建立grpc连接
func NewClient(cfg *warden.ClientConfig, opts ...grpc.DialOption) (StreamClient, error) {
client := warden.NewClient(cfg, opts...)
cc, err := client.Dial(context.Background(), fmt.Sprintf("discovery://default/%s", DiscoveryAppID))
if err != nil {
return nil, err
}
return NewStreamClient(cc), nil
}