前言
底层网络库,提供了一套接口,后续的agent,acceptor,group 等类都会实现这些接口
NetworkEntity
定义
network entity表示可用于构造会话对象的网络实体。
type message struct {
route string
data interface{}
}
// NetworkEntity represents an network entity which can be used to construct the
// session object.
type NetworkEntity struct {
messages []message
responses []interface{}
msgmap map[uint64]interface{}
rpcCall []message
}
// NewNetworkEntity returns an mock network entity
func NewNetworkEntity() *NetworkEntity {
return &NetworkEntity{
msgmap: map[uint64]interface{}{},
}
}
接口
1. RPC
加载[]message 切片 rpcCall
// RPC implements the session.NetworkEntity interface
func (n *NetworkEntity) RPC(route string, v interface{}) error {
n.rpcCall = append(n.rpcCall, message{route: route, data: v})
return nil
}
2. Push
messages
// Push implements the session.NetworkEntity interface
func (n *NetworkEntity) Push(route string, v interface{}) error {
n.messages = append(n.messages, message{route: route, data: v})
return nil
}
3. Response
// Response implements the session.NetworkEntity interface
func (n *NetworkEntity) Response(v interface{}) error {
n.responses = append(n.responses, v)
return nil
}