// 从peer获取rpc使用的session func getPeerSession(p interface{}) (cellnet.Session, cellnet.EventQueue, error) { var ses cellnet.Session switch p.(type) { case cellnet.Peer: if connPeer, ok := p.(interface { DefaultSession() cellnet.Session }); ok { ses = connPeer.DefaultSession() } else { return nil, nil, errInvalidPeerSession } case cellnet.Session: ses = p.(cellnet.Session) } if ses == nil { return nil, nil, errConnectorSesNotReady } return ses, ses.FromPeer().(cellnet.EventQueue), nil }