package bhomeclient
|
|
const (
|
PORT_DEFAULTPROXY int = 5000
|
KEY_REGISTER int = 101 //处理TOPIC_REGISTER / TOPIC_LEAVE和TOPIC_UPDATETOPIC
|
KEY_HEARTBEAT int = 102 //处理TOPIC_HEARTBEAT
|
KEY_QUERY int = 103 //处理TOPIC_QUERYKEY和TOPIC_QUERYTOPIC和TOPIC_QUERYPROC
|
)
|
|
const (
|
TOPIC_SERFNODELISTUPDATE string = "Topic_SerfNodeListUpdate"
|
TOPIC_QUERYSERFNODELIST string = "Topic_QuerySerfNodeList"
|
TOPIC_REGISTER string = "Topic_Register"
|
TOPIC_DEREGISTER string = "Topic_Deregister"
|
TOPIC_HEARTBEAT string = "Topic_Heartbeat"
|
TOPIC_UPDATETOPIC string = "Topic_UpdateTopic"
|
TOPIC_QUERYKEY string = "Topic_QueryKey"
|
TOPIC_QUERYTOPIC string = "Topic_QueryTopic"
|
TOPIC_QUERYPROC string = "Topic_QueryProc"
|
)
|
|
//const (
|
// REPLY_SUCCESS int = 200
|
// REPLY_FAILED int = 202
|
//)
|
//type CommonReply struct {
|
// Status int `json:"status"` // 请求状态,目前只有两个,成功返回200,失败202
|
// Desc string `json:"desc"` // 请求状态的描述,成功"success",失败返回失败原因,如心跳服务未启动
|
// Body []byte `json:"body"` // 返回值的具体内容,用户约定
|
//}
|
|
const (
|
NODE_ALIVE int = 0
|
NODE_DEAD int = 1
|
)
|
|
type NodeList struct {
|
Ip string `json:"ip"`
|
Port int `json:"port"`
|
}
|
|
const (
|
MesgType_PubSub = "PUBSUB"
|
MesgType_ReqRep = "REQREP"
|
MesgType_SendOnly = "SENDONLY"
|
)
|
|
type ServerInfo struct { // 节点基本信息
|
ID string `json:"id"` // 机器ID
|
IP string `json:"ip"` // 机器IP
|
Port int `json:"port"` // 端口,代理进程的端口
|
BoardID string `json:"boardId"` // 板卡ID
|
Info string `json:"info"` // 附加信息
|
}
|
|
type ProcInfo struct {
|
Name string `json:"name"` // 进程名称
|
ID string `json:"id"` // 进程唯一标识
|
Info string `json:"info"` // 进程的描述信息,用于区分同一进程名称下多个进程
|
}
|
|
type RegisterInfo struct {
|
Proc ProcInfo `json:"proc"` // 进程的信息
|
Channel []string `json:"channel"` // 新增频道,对应一个新的共享内存队列
|
PubTopic []string `json:"pubTopic"` // 进程对外发布的服务主题
|
SubTopic []string `json:"subTopic"` // 进程订阅的服务主题
|
}
|
|
|
type RegisterReply struct {
|
TCPProxyIP string `json:"tcpProxyIP"` // BHomeCenter启动的tcp代理服务器IP
|
TCPProxyPort int `json:"tcpProxyPort"` // BHomeCenter启动的tcp代理服务器端口
|
HeartbeatKey int `json:"heartbeatKey"` // client发送心跳的key
|
ReplyKey int `json:"replyKey"` // client的应答服务key
|
ChannelKey map[string]int `json:"channelKey"` // client的chan对应的key
|
QueryTopicKey int `json:"queryTopicKey"` // client查询topic对应的key时用到的key
|
Status int `json:"status"` // 请求状态,目前只有两个,成功返回200,失败202
|
}
|
|
type HeartBeatInfo struct {
|
Proc ProcInfo `json:"proc"` // 进程的信息
|
HealthLevel string `json:"healthLevel"` // 健康等级
|
Fps int `json:"fps"` // 处理帧率(dec解码帧率、sdk处理帧率)
|
WarnInfo string `json:"warnInfo"` // 报警信息
|
ErrorInfo string `json:"errorInfo"` // 错误信息
|
OtherInfo []byte `json:"otherInfo"` // 其他特有信息,如有需要就用这个
|
OtherInfoSize int `json:"otherInfoSize"` // 其他特有信息长度
|
}
|
|
type HeartBeatReply struct {
|
Status int `json:"status"` // 请求状态,目前只有两个,成功返回200,失败202
|
Desc string `json:"desc"` // 请求状态的描述,成功"success",失败返回失败原因,如心跳服务未启动
|
}
|
|
type MsgInfo struct {
|
SrcProc ProcInfo `json:"srcProc"` // 源进程基本信息
|
MsgType string `json:"msgType"` // 数据类型,可为请求、发布、订阅、应答等
|
Topic string `json:"topic"` // 请求的函数,并不对应任何的shmKey,业务层的topic
|
Body []byte `json:"body"` // 请求内容
|
}
|
|
|
//节点及topic-key对应关系
|
type NodeInfo struct {
|
SvrInfo ServerInfo `json:"svrInfo"` //节点基本信息
|
Topic2Key map[string]int `json:"topic2Key"` //topic-replyKey的对应关系
|
Status int `json:"status"` //节点状态
|
}
|
|
|
//已注册的Proc进程信息
|
type RegisteredClient struct {
|
Info RegisterInfo `json:"info"`
|
ReplyKey int `json:"replyKey"`
|
HeartbeatCount int `json:"heartbeatCount"`
|
DeadCount int `json:"deadCount"`
|
Status int `json:"status"`
|
}
|