mirror of https://github.com/schollz/croc.git
fix
This commit is contained in:
parent
9bcb1555f8
commit
a87612049d
|
@ -277,6 +277,7 @@ func (c *Client) connectToRelay() (err error) {
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
break
|
||||||
} else {
|
} else {
|
||||||
log.Debug("unknown: %s", wsmsg)
|
log.Debug("unknown: %s", wsmsg)
|
||||||
}
|
}
|
||||||
|
@ -289,6 +290,9 @@ func (c *Client) connectToRelay() (err error) {
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if wsreply.Message == "[8] answer" {
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = <-finished
|
err = <-finished
|
||||||
|
@ -343,8 +347,8 @@ func (c *Client) CreateOfferer(finished chan<- error) (pc *webrtc.PeerConnection
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ordered := false
|
ordered := true
|
||||||
maxRetransmits := uint16(0)
|
maxRetransmits := uint16(3)
|
||||||
var id uint16 = 5
|
var id uint16 = 5
|
||||||
options := &webrtc.DataChannelInit{
|
options := &webrtc.DataChannelInit{
|
||||||
Ordered: &ordered,
|
Ordered: &ordered,
|
||||||
|
@ -375,8 +379,17 @@ func (c *Client) CreateOfferer(finished chan<- error) (pc *webrtc.PeerConnection
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var readyToBegin = false
|
||||||
|
var readyToEnd = false
|
||||||
|
|
||||||
dc.OnOpen(func() {
|
dc.OnOpen(func() {
|
||||||
if c.Options.IsSender {
|
if c.Options.IsSender {
|
||||||
|
for {
|
||||||
|
time.Sleep(10 * time.Millisecond)
|
||||||
|
if readyToBegin {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
log.Debug("sending file")
|
log.Debug("sending file")
|
||||||
pos := uint64(0)
|
pos := uint64(0)
|
||||||
f, errOpen := os.Open("croc1")
|
f, errOpen := os.Open("croc1")
|
||||||
|
@ -404,7 +417,7 @@ func (c *Client) CreateOfferer(finished chan<- error) (pc *webrtc.PeerConnection
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
pos += uint64(n)
|
pos += uint64(n)
|
||||||
time.Sleep(3 * time.Millisecond)
|
time.Sleep(1 * time.Millisecond)
|
||||||
}
|
}
|
||||||
log.Debug(float64(fstat.Size()) / float64(time.Since(timeStart).Seconds()) / 1000000)
|
log.Debug(float64(fstat.Size()) / float64(time.Since(timeStart).Seconds()) / 1000000)
|
||||||
err2 := sendData([]byte{1, 2, 3})
|
err2 := sendData([]byte{1, 2, 3})
|
||||||
|
@ -412,9 +425,18 @@ func (c *Client) CreateOfferer(finished chan<- error) (pc *webrtc.PeerConnection
|
||||||
finished <- err2
|
finished <- err2
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
for {
|
||||||
|
time.Sleep(10 * time.Millisecond)
|
||||||
|
if readyToEnd {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
finished <- nil
|
finished <- nil
|
||||||
|
|
||||||
|
} else {
|
||||||
|
sendData([]byte{2, 3, 4})
|
||||||
|
sendData([]byte{2, 3, 4})
|
||||||
|
sendData([]byte{2, 3, 4})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -433,12 +455,21 @@ func (c *Client) CreateOfferer(finished chan<- error) (pc *webrtc.PeerConnection
|
||||||
if bytes.Equal(dcMsg.Data, []byte{1, 2, 3}) {
|
if bytes.Equal(dcMsg.Data, []byte{1, 2, 3}) {
|
||||||
log.Debug("received magic")
|
log.Debug("received magic")
|
||||||
fwrite.Close()
|
fwrite.Close()
|
||||||
|
sendData([]byte{1, 3, 4})
|
||||||
|
time.Sleep(100 * time.Millisecond)
|
||||||
finished <- nil
|
finished <- nil
|
||||||
return
|
return
|
||||||
|
} else if bytes.Equal(dcMsg.Data, []byte{2, 3, 4}) {
|
||||||
|
log.Debug("got ready to begin")
|
||||||
|
readyToBegin = true
|
||||||
|
return
|
||||||
|
} else if bytes.Equal(dcMsg.Data, []byte{1, 3, 4}) {
|
||||||
|
log.Debug("got ready to end")
|
||||||
|
readyToEnd = true
|
||||||
|
return
|
||||||
}
|
}
|
||||||
err = box.Unbundle(string(dcMsg.Data), c.Key, &fd)
|
err = box.Unbundle(string(dcMsg.Data), c.Key, &fd)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
// log.Debug(fd.Position)
|
|
||||||
fwrite.Write(fd.Data)
|
fwrite.Write(fd.Data)
|
||||||
} else {
|
} else {
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
|
|
|
@ -210,5 +210,5 @@ func Run() (err error) {
|
||||||
log.Debugf("[%s] new connection %+v", room, c)
|
log.Debugf("[%s] new connection %+v", room, c)
|
||||||
s.readPump()
|
s.readPump()
|
||||||
})
|
})
|
||||||
return router.Run(":8005")
|
return router.Run(":8018")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue