Connect example tweaks #1
@@ -4,6 +4,7 @@ import (
|
||||
"bufio"
|
||||
"flag"
|
||||
"fmt"
|
||||
"strings"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
@@ -63,7 +64,13 @@ func send(e *iroh.Endpoint, id string) {
|
||||
}
|
||||
|
||||
func listen(e *iroh.Endpoint) {
|
||||
incoming := *e.AcceptNext()
|
||||
for {
|
||||
incoming := *e.AcceptNext()
|
||||
go handleIncoming(incoming)
|
||||
}
|
||||
}
|
||||
|
||||
func handleIncoming (incoming *iroh.Incoming) {
|
||||
accepting, err := incoming.Accept()
|
||||
check(err)
|
||||
|
||||
@@ -76,7 +83,17 @@ func listen(e *iroh.Endpoint) {
|
||||
recv := stream.Recv()
|
||||
for {
|
||||
frame, err := recv.Read(frameSize)
|
||||
check(err)
|
||||
// handle timeout
|
||||
if err != nil {
|
||||
irohErr := err.(*iroh.IrohError)
|
||||
errMsg := irohErr.Message()
|
||||
if strings.HasPrefix(errMsg, "ConnectionLost") {
|
||||
fmt.Println("lost connection")
|
||||
break
|
||||
} else {
|
||||
check(err)
|
||||
}
|
||||
}
|
||||
fmt.Println(string(frame))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user