Esempio n. 1
0
// 从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
}