Documentation
¶
Index ¶
- Constants
- Variables
- func BuildProxyRespHeader(resp *ProxyRespPackage, srvID uint32, callID uint32, errcode uint32, ...)
- func BuildRespHeader(resp *ResponsePackage, srvID uint32, callID uint32, errcode uint32)
- func PackCancelMsg(msg *RpcCancelPackage) ([]byte, int)
- func PackIdentityNotifyMsg(msg *RpcIdentityNotifyPackage) ([]byte, int)
- func PackLoggedOutMsg(resp *RpcLoggedOutPackage) ([]byte, int)
- func PackPingMsg(resp *RpcPingPackage) ([]byte, int)
- func PackPlatoMessage(header interface{}, buffer []byte, length int) ([]byte, int)
- func PackPongMsg(resp *RpcPongPackage) ([]byte, int)
- func PackProxyReqMsg(req *ProxyRequestPackage) ([]byte, int)
- func PackProxyRespMsg(resp *ProxyRespPackage) ([]byte, int)
- func PackPublishMsg(msg *RpcPubPackage) ([]byte, int)
- func PackReqMsg(req *RequestPackage) ([]byte, int)
- func PackRespMsg(resp *ResponsePackage) ([]byte, int)
- func PackSubscribeMsg(msg *RpcSubPackage) ([]byte, int)
- func PackTimeMsg(resp *RpcTimeoutPackage) ([]byte, int)
- func ParseProtocolHeader(pkg []byte, header interface{}) bool
- func SetProtocol(cusProto Protocol)
- type GlobalIndexType
- type NoRpcPackage
- type Protocol
- type ProxyRequestPackage
- type ProxyRespPackage
- type RequestPackage
- type ResponsePackage
- type RpcCallHeader
- type RpcCallRetHeader
- type RpcCancelPackage
- type RpcCancelSubHeader
- type RpcIdentityNotifyHeader
- type RpcIdentityNotifyPackage
- type RpcLoggedOutHeader
- type RpcLoggedOutPackage
- type RpcMsgHeader
- type RpcPingHeader
- type RpcPingPackage
- type RpcPongHeader
- type RpcPongPackage
- type RpcProxyCallHeader
- type RpcProxyCallRetHeader
- type RpcPubHeader
- type RpcPubPackage
- type RpcSubHeader
- type RpcSubPackage
- type RpcTimeoutHeader
- type RpcTimeoutPackage
Constants ¶
View Source
const ( PACKAGE_ERROR = iota PACKAGE_FULL PACKAGE_LESS )
View Source
const ( RpcInvalidMsg uint32 = iota //0 无效类型 RequestMsg // 1 调用请求 ResponseMsg // 2 调用返回 ProxyRequestMsg // 3 proxy模式调用请求 ProxyResponseMsg // 4 proxy 模式请求回调 NotRpcMsg // 5 非RPC协议 RpcEventSub // 6 订阅事件 RpcEventPub // 7 发布事件 RpcEventCancel // 8 取消订阅 RpcCallAlias // 9 调用声明 RpcPing // 10 发送ping请求, 外部客户端到网关 RpcPong // 11 返回pong请求, 网关返回外部客户端 RpcTimeout // 12 ping pong 超时, 网关同步内部服务器 RpcLoggedOut // 13 外部连接强制下线操作 RpcIdentityNotify // 14 内部集群身份通知协议,只有内部服务处理 RpcProtocolMax // 15 最大有效协议范围 )
View Source
const ( IDL_SUCCESS uint32 = iota + 1 IDL_SERVICE_NOT_FOUND IDL_SERVICE_ERROR IDL_RPC_TIME_OUT IDL_RPC_LIMIT )
Variables ¶
Functions ¶
func BuildProxyRespHeader ¶
func BuildProxyRespHeader(resp *ProxyRespPackage, srvID uint32, callID uint32, errcode uint32, globalIndex GlobalIndexType)
func BuildRespHeader ¶
func BuildRespHeader(resp *ResponsePackage, srvID uint32, callID uint32, errcode uint32)
func PackCancelMsg ¶ added in v0.5.0
func PackCancelMsg(msg *RpcCancelPackage) ([]byte, int)
func PackIdentityNotifyMsg ¶ added in v0.5.3
func PackIdentityNotifyMsg(msg *RpcIdentityNotifyPackage) ([]byte, int)
func PackLoggedOutMsg ¶ added in v0.4.16
func PackLoggedOutMsg(resp *RpcLoggedOutPackage) ([]byte, int)
func PackPingMsg ¶ added in v0.4.16
func PackPingMsg(resp *RpcPingPackage) ([]byte, int)
func PackPlatoMessage ¶ added in v0.5.6
func PackPongMsg ¶ added in v0.4.16
func PackPongMsg(resp *RpcPongPackage) ([]byte, int)
func PackProxyReqMsg ¶
func PackProxyReqMsg(req *ProxyRequestPackage) ([]byte, int)
func PackProxyRespMsg ¶
func PackProxyRespMsg(resp *ProxyRespPackage) ([]byte, int)
func PackPublishMsg ¶ added in v0.5.0
func PackPublishMsg(msg *RpcPubPackage) ([]byte, int)
func PackReqMsg ¶
func PackReqMsg(req *RequestPackage) ([]byte, int)
func PackRespMsg ¶
func PackRespMsg(resp *ResponsePackage) ([]byte, int)
func PackSubscribeMsg ¶ added in v0.5.0
func PackSubscribeMsg(msg *RpcSubPackage) ([]byte, int)
func PackTimeMsg ¶ added in v0.4.16
func PackTimeMsg(resp *RpcTimeoutPackage) ([]byte, int)
func ParseProtocolHeader ¶ added in v0.5.0
func SetProtocol ¶ added in v0.4.16
func SetProtocol(cusProto Protocol)
Types ¶
type NoRpcPackage ¶ added in v0.5.6
type NoRpcPackage struct {
Header *RpcMsgHeader
Buffer []byte
}
type Protocol ¶
type Protocol interface {
ReadHeader(pkg []byte, header *RpcMsgHeader) bool
ParsePlatoHeader(pkg []byte, header interface{}) bool
ParseReqMsg(pkg []byte, header *RpcCallHeader) bool
ParseProxyReqMsg([]byte, *RpcProxyCallHeader) bool
ParseRespMsg(pkg []byte, header *RpcCallRetHeader) bool
ParseProxyRespMsg([]byte, *RpcProxyCallRetHeader) bool
ParseSubMsg([]byte, *RpcSubHeader) bool
ParsePubMsg([]byte, *RpcPubHeader) bool
ParseCancelMsg([]byte, *RpcCancelSubHeader) bool
PackPlatoMsg(interface{}, []byte, int) ([]byte, int)
PackRespMsg(resp *ResponsePackage) ([]byte, int)
PackReqMsg(req *RequestPackage) ([]byte, int)
PackProxyReqMsg(req *ProxyRequestPackage) ([]byte, int)
PackProxyRespMsg(resp *ProxyRespPackage) ([]byte, int)
PackSubMsg(header *RpcSubPackage) ([]byte, int)
PackPubMsg(header *RpcPubPackage) ([]byte, int)
PackCancelMsg(header *RpcCancelPackage) ([]byte, int)
}
type ProxyRequestPackage ¶
type ProxyRequestPackage struct {
Header *RpcProxyCallHeader
Buffer []byte
}
type ProxyRespPackage ¶
type ProxyRespPackage struct {
Header *RpcProxyCallRetHeader
Buffer []byte
}
func BuildProxyNotFound ¶
func BuildProxyNotFound(req *RpcProxyCallHeader) (resp *ProxyRespPackage)
type RequestPackage ¶
type RequestPackage struct {
Header *RpcCallHeader //请求协议头
Buffer []byte //协议提二进制数据, 可以对接pb 或者自己的结构体
}
type ResponsePackage ¶
type ResponsePackage struct {
Header *RpcCallRetHeader //回包结构体
Buffer []byte //协议体二进制数据, 可以对接pb 或者自己的结构体
}
func BuildException ¶
func BuildException(callID uint32, pkg []byte) (resp *ResponsePackage)
BuildException build run exception response
func BuildNotFound ¶
func BuildNotFound(req *RpcCallHeader) (resp *ResponsePackage)
func BuildTimeOut ¶
func BuildTimeOut(callID uint32) (resp *ResponsePackage)
BuildTimeOut TODO use static variables
type RpcCallHeader ¶
type RpcCallHeader struct {
RpcMsgHeader
ServiceUUID uint64 //服务UUID
ServerID uint32 //服务器实例ID
CallID uint32 //代理调用id
MethodID uint32 //方法id
}
RpcMsgHeader 协议包头 协议类型 协议长度
func ReadCallHeader ¶
func ReadCallHeader(pkg []byte) *RpcCallHeader
type RpcCallRetHeader ¶
type RpcCallRetHeader struct {
RpcMsgHeader
ServerID uint32
CallID uint32
ErrorCode uint32
}
RpcMsgHeader 协议包头 协议类型 协议长度
func ReadRetHeader ¶
func ReadRetHeader(pkg []byte) *RpcCallRetHeader
type RpcCancelPackage ¶ added in v0.4.0
type RpcCancelPackage struct {
Header *RpcCancelSubHeader
Buffer []byte
}
func BuildCancel ¶ added in v0.5.0
func BuildCancel(subId string) (msg *RpcCancelPackage)
type RpcCancelSubHeader ¶ added in v0.4.0
type RpcCancelSubHeader struct {
RpcMsgHeader
SubId [32]byte //订阅id
}
RpcCancelSubHeader 取消订阅消息头
type RpcIdentityNotifyHeader ¶ added in v0.5.3
type RpcIdentityNotifyHeader struct {
RpcMsgHeader
IdentityID [32]byte // 身份标识ID,唯一ID,启动时候生成
}
RpcIdentityNotifyHeader 身份通知,用于集群内部通知连接信息
type RpcIdentityNotifyPackage ¶ added in v0.5.3
type RpcIdentityNotifyPackage struct {
Header *RpcIdentityNotifyHeader
Buffer []byte
}
func BuildIdentityNotifyMessage ¶ added in v0.5.3
func BuildIdentityNotifyMessage(name string, id string) (msg *RpcIdentityNotifyPackage)
type RpcLoggedOutHeader ¶ added in v0.4.16
type RpcLoggedOutHeader struct {
RpcMsgHeader
GlobalIndexId GlobalIndexType
}
RpcLoggedOutHeader 强制用户下线
func ReadLoggedOutHeader ¶ added in v0.4.16
func ReadLoggedOutHeader(pkg []byte) *RpcLoggedOutHeader
type RpcLoggedOutPackage ¶ added in v0.4.16
type RpcLoggedOutPackage struct {
Header *RpcLoggedOutHeader
}
type RpcMsgHeader ¶
RpcMsgHeader 协议包头 协议类型 协议长度
func ReadHeader ¶
func ReadHeader(pkg []byte) *RpcMsgHeader
type RpcPingHeader ¶ added in v0.4.16
type RpcPingHeader struct {
RpcMsgHeader
PingId uint64 //ping id, 客户端第一次连接网关时候,赋值一次,可以用于定时器轮询
}
RpcPingHeader 心跳包,client --> gateway
func ReadPingHeader ¶ added in v0.4.16
func ReadPingHeader(pkg []byte) *RpcPingHeader
type RpcPingPackage ¶ added in v0.4.16
type RpcPingPackage struct {
Header *RpcPingHeader
}
type RpcPongHeader ¶ added in v0.4.16
type RpcPongHeader struct {
RpcMsgHeader
PingId uint64 //ping id, 客户端第一次连接网关时候,赋值一次,可以用于定时器轮询
}
RpcPongHeader 心跳包,gateway --> client
type RpcPongPackage ¶ added in v0.4.16
type RpcPongPackage struct {
Header *RpcPongHeader
}
type RpcProxyCallHeader ¶
type RpcProxyCallHeader struct {
RpcMsgHeader
ServiceUUID uint64 //服务UUID
ServerID uint32 //服务器实例ID
CallID uint32 //代理调用id
MethodID uint32 //方法id
GlobalIndex GlobalIndexType //代理节点标识
OneWay uint16 // 是否是one way节点
}
RpcMsgHeader 协议包头 协议类型 协议长度
func BuildProxyCallHeader ¶
func BuildProxyCallHeader(header *RpcCallHeader, globalIndex GlobalIndexType) *RpcProxyCallHeader
func ReadProxyCallHeader ¶
func ReadProxyCallHeader(pkg []byte) *RpcProxyCallHeader
type RpcProxyCallRetHeader ¶
type RpcProxyCallRetHeader struct {
RpcMsgHeader
ServerID uint32 //服务实例id
CallID uint32 //调用id对端赋值
ErrorCode uint32 //错误代码
GlobalIndex GlobalIndexType //代理节点标识
}
RpcMsgHeader 协议包头 协议类型 协议长度
func ReadProxyRetHeader ¶
func ReadProxyRetHeader(pkg []byte) *RpcProxyCallRetHeader
type RpcPubHeader ¶ added in v0.4.0
type RpcPubHeader struct {
RpcMsgHeader
SubId [32]byte //订阅id
ProxyId uint32 //代理id
ValueLen uint32 //附带数据长度
}
RpcPubHeader 发布事件消息头
type RpcPubPackage ¶ added in v0.4.0
type RpcPubPackage struct {
Header *RpcPubHeader
Buffer []byte
}
func BuildPublish ¶ added in v0.5.0
func BuildPublish(subId string, proxyId uint32, dLen uint32) (msg *RpcPubPackage)
type RpcSubHeader ¶ added in v0.4.0
type RpcSubHeader struct {
RpcMsgHeader
SubId [32]byte //订阅id
ProxyId uint32 //代理id
ServiceUUID uint64 //服务uid
ServiceID uint32 //服务实例id
NameLen uint32 //事件名称长度
DataLen uint32 //数据长度
}
RpcSubHeader 订阅事件消息头
type RpcSubPackage ¶ added in v0.4.0
type RpcSubPackage struct {
Header *RpcSubHeader
Buffer []byte
}
func BuildSubscribe ¶ added in v0.5.0
type RpcTimeoutHeader ¶ added in v0.4.16
type RpcTimeoutHeader struct {
RpcMsgHeader
GlobalIndexId GlobalIndexType // 网关唯一 id
}
RpcTimeoutHeader 断线时,网关通知内部服务,外部连接断开
func ReadTimeoutHeader ¶ added in v0.4.16
func ReadTimeoutHeader(pkg []byte) *RpcTimeoutHeader
type RpcTimeoutPackage ¶ added in v0.4.16
type RpcTimeoutPackage struct {
Header *RpcTimeoutHeader
}
Click to show internal directories.
Click to hide internal directories.