Skip to content
This repository has been archived by the owner on Dec 2, 2023. It is now read-only.

Commit

Permalink
(fix) fix no transport error when trickle (#573)
Browse files Browse the repository at this point in the history
  • Loading branch information
adwpc committed Jul 21, 2021
1 parent d6ce77e commit daafc47
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 23 deletions.
26 changes: 13 additions & 13 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,19 @@ services:
networks:
- ionnet

avp:
image: pionwebrtc/ion:latest-avp
build:
dockerfile: ./docker/avp.Dockerfile
context: .
volumes:
- "./configs/docker/avp.toml:/configs/avp.toml"
- "./out:/out/"
depends_on:
- nats
- islb
networks:
- ionnet
#avp:
# image: pionwebrtc/ion:latest-avp
# build:
# dockerfile: ./docker/avp.Dockerfile
# context: .
# volumes:
# - "./configs/docker/avp.toml:/configs/avp.toml"
# - "./out:/out/"
# depends_on:
# - nats
# - islb
# networks:
# - ionnet

signal:
image: pionwebrtc/ion:latest-signal
Expand Down
21 changes: 11 additions & 10 deletions pkg/node/sfu/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ func (s *sfuServer) postISLBEvent(event *islb.ISLBEvent) {
}

func (s *sfuServer) Signal(stream pb.SFU_SignalServer) error {
recvCandidates := []webrtc.ICECandidateInit{}
peer := isfu.NewPeer(s.sfu)
var streams []*ion.Stream

Expand Down Expand Up @@ -326,20 +327,20 @@ func (s *sfuServer) Signal(stream pb.SFU_SignalServer) error {
continue
}

// trickle the old candidates
for _, candidate := range recvCandidates {
err = peer.Trickle(candidate, int(payload.Trickle.Target))
if err != nil {
log.Warnf("peer trickle error: %v", err)
}
}
err = peer.Trickle(candidate, int(payload.Trickle.Target))
if err != nil {
switch err {
case isfu.ErrNoTransportEstablished:
log.Errorf("peer hasn't joined, error -> %v", err)
err = stream.Send(&pb.SignalReply{
Payload: &pb.SignalReply_Error{
Error: fmt.Errorf("trickle error: %w", err).Error(),
},
})
if err != nil {
log.Errorf("grpc send error: %v", err)
return status.Errorf(codes.Internal, err.Error())
}
// cadidate arrived before join, cache it
log.Infof("cadidate arrived before join, cache it: %v", candidate)
recvCandidates = append(recvCandidates, candidate)
default:
return status.Errorf(codes.Unknown, fmt.Sprintf("negotiate error: %v", err))
}
Expand Down

0 comments on commit daafc47

Please sign in to comment.