code: func (r *PeerResolver) ShouldDisconnect(peers []fab.Peer, connectedPeer fab.Peer) bool {
  	if !r.isPreferred(connectedPeer) {
  		// We're not connected to a preferred peer. Check if we can connect back to one.
  		logger.Debugf("Currently connected to [%s]. Checking if any of the preferred peers [%s] is suitable to connect back to", connectedPeer.URL(), r.preferredPeers)
  
  		if len(r.getPreferredPeers(r.minBlockHeightResolver.Filter(peers))) > 0 {
  			logger.Debugf("At least one of our preferred peers is suitable to connect back to so the event client will be disconnected from peer [%s]", connectedPeer.URL())
  			return true
  		}
  
  		logger.Debugf("None of our preferred peers is suitable to connect back to so the event client will NOT be disconnected from peer [%s]", connectedPeer.URL())
  	}
  
  	logger.Debugf("Using the 'prefer org' resolver to determine whether peer [%s] should be disconnected", connectedPeer.URL())
  	return r.preferOrgResolver.ShouldDisconnect(peers, connectedPeer)
  }
docs: // ShouldDisconnect determines whether the connected peer should be disconnected and reconnected to the preferred peer.