func (p *Peer) Trickle(msg *proto.ClientTrickleMsg) error {
	log.Infof("peer trickle: uid=%s, msg=%v", p.uid, msg)

	sfu, err := p.sfu()
	if err != nil {
		log.Warnf("sfu-node not found, %s", err.Error())
		return err
	}

	_, err = p.s.nrpc.Request(sfu, proto.SfuTrickleMsg{
		MID:       p.mid,
		Candidate: msg.Candidate,
		Target:    msg.Target,
	})
	if err != nil {
		log.Errorf("trickle to %s error: %s", sfu, err.Error())
		return err
	}

	return nil
}
// Trickle received candidate of client
Trickle received candidate of client
// Trickle received candidate of client
func (p *Peer) Trickle(msg *proto.ClientTrickleMsg) error {
	log.Infof("peer trickle: uid=%s, msg=%v", p.uid, msg)
	sfu, err := p.sfu()
	if err != nil {
		log.Warnf("sfu-node not found, %s", err.Error())
		return err
	}
	_, err = p.s.nrpc.Request(sfu, proto.SfuTrickleMsg{
		MID:       p.mid,
		Candidate: msg.Candidate,
		Target:    msg.Target,
	})
	if err != nil {
		log.Errorf("trickle to %s error: %s", sfu, err.Error())
		return err
	}
	return nil
}
func ( p * Peer ) Trickle ( msg * proto . ClientTrickleMsg ) error { log . Infof ( " " , p . uid , msg ) sfu , err := p . sfu ( ) if err != nil { log . Warnf ( " " , err . Error ( ) ) return err } _ , err = p . s . nrpc . Request ( sfu , proto . SfuTrickleMsg { MID : p . mid , Candidate : msg . Candidate , Target : msg . Target , } ) if err != nil { log . Errorf ( " " , sfu , err . Error ( ) ) return err } return nil }
Trickle received candidate of client
Trickle received candidate of client