antonito / gfile Goto Github PK
View Code? Open in Web Editor NEWDirect file transfer over WebRTC
Home Page: https://github.com/Antonito/gfile
License: MIT License
Direct file transfer over WebRTC
Home Page: https://github.com/Antonito/gfile
License: MIT License
The README uses the term "SDP" but doesn't define it.
Hey @Antonito
Would you be interested in upgrading to /v3?
I recommend this project to others on File Transfer/DataChannel usage. So would love for them to start off with a /v3
. If you are interested I can submit a PR in a few weeks. Want to check before I attempt it though. It should be only one change around Trickle ICE
thanks!
Is there a way to run this, without relying on a third party server/service?
74.125.197.127
Aww man! This project looks awesome. It's exactly what I've been searching for.... but... on my Windows box I get an error using any command....
C:\Users\User\downloads\gfile_Windows_x86_64>gfile.exe bench
Exception 0xc0000005 0x0 0x7ffcbe810fff 0xd70000
PC=0xd70000
syscall.loadsystemlibrary(0xc00000eac0, 0x0, 0x0)
/usr/local/Cellar/go/1.12.1/libexec/src/runtime/syscall_windows.go:135 +0x11d
syscall.LoadDLL(0x7b2024, 0xc, 0xc000004280, 0xc000066eb0, 0xc000066ea0)
/usr/local/Cellar/go/1.12.1/libexec/src/syscall/dll_windows.go:56 +0xd8
syscall.(*LazyDLL).Load(0xc000004280, 0x0, 0x0)
/usr/local/Cellar/go/1.12.1/libexec/src/syscall/dll_windows.go:212 +0xa9
syscall.(*LazyProc).Find(0xc000041d10, 0x0, 0x0)
/usr/local/Cellar/go/1.12.1/libexec/src/syscall/dll_windows.go:267 +0xa4
syscall.(*LazyProc).mustFind(0xc000041d10)
/usr/local/Cellar/go/1.12.1/libexec/src/syscall/dll_windows.go:285 +0x32
syscall.(*LazyProc).Addr(0xc000041d10, 0xca0008)
/usr/local/Cellar/go/1.12.1/libexec/src/syscall/dll_windows.go:294 +0x32
internal/syscall/windows.GetAdaptersAddresses(0x1000000000, 0x0, 0xc0000e6000, 0xc000066fd0, 0xffffffffffffffff, 0x0)
/usr/local/Cellar/go/1.12.1/libexec/src/internal/syscall/windows/zsyscall_windows.go:75 +0x38
net.adapterAddresses(0x415411, 0xce7000, 0x200, 0xcfffff, 0x100)
/usr/local/Cellar/go/1.12.1/libexec/src/net/interface_windows.go:23 +0x98
net.interfaceTable(0x0, 0x7afec6, 0x3, 0x73, 0xcab7f8, 0x30000000a78540)
/usr/local/Cellar/go/1.12.1/libexec/src/net/interface_windows.go:48 +0x3b
net.Interfaces(0x445326, 0x6, 0x30000, 0x2000, 0xc000067268)
/usr/local/Cellar/go/1.12.1/libexec/src/net/interface.go:100 +0x35
github.com/pion/ice.localInterfaces(0xc000010d80, 0x2, 0x2, 0x51d8d9, 0x789a00, 0xc00007e960)
/Users/antoine/go/pkg/mod/github.com/pion/[email protected]/util.go:13 +0x3e
github.com/pion/ice.(*Agent).gatherCandidatesLocal(0xc000084360, 0xc000010d80, 0x2, 0x2)
/Users/antoine/go/pkg/mod/github.com/pion/[email protected]/agent.go:231 +0x64
github.com/pion/ice.NewAgent(0xc000067530, 0xc000010d78, 0x1, 0x1)
/Users/antoine/go/pkg/mod/github.com/pion/[email protected]/agent.go:177 +0x49a
github.com/pion/webrtc/v2.(*ICEGatherer).Gather(0xc00007e780, 0x0, 0x0)
/Users/antoine/go/pkg/mod/github.com/pion/webrtc/[email protected]/icegatherer.go:79 +0x249
github.com/pion/webrtc/v2.(*PeerConnection).gather(...)
/Users/antoine/go/pkg/mod/github.com/pion/webrtc/[email protected]/peerconnection.go:507
github.com/pion/webrtc/v2.(*API).NewPeerConnection(0xc000033c80, 0xc000035740, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/Users/antoine/go/pkg/mod/github.com/pion/webrtc/[email protected]/peerconnection.go:129 +0x28c
github.com/pion/webrtc/v2.NewPeerConnection(0xc000035740, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/Users/antoine/go/pkg/mod/github.com/pion/webrtc/[email protected]/peerconnection.go:86 +0xf3
github.com/antonito/gfile/internal/session.(*Session).CreateConnection(0xc0000aa000, 0x7c6ba8, 0xc000006018, 0xc000006010)
/Users/antoine/Documents/perso/gfile/internal/session/session.go:53 +0x111
github.com/antonito/gfile/pkg/session/bench.(*Session).Start(0xc0000aa000, 0x0, 0x0)
/Users/antoine/Documents/perso/gfile/pkg/session/bench/init.go:12 +0x5a
github.com/antonito/gfile/cmd/bench.handler(0xc00008e580, 0x0, 0xc00008e580)
/Users/antoine/Documents/perso/gfile/cmd/bench/cmd.go:20 +0xaa
gopkg.in/urfave/cli%2ev1.HandleAction(0x73dd60, 0x7c6b88, 0xc00008e580, 0xc000038100, 0x0)
/Users/antoine/go/pkg/mod/gopkg.in/urfave/[email protected]/app.go:490 +0xcf
gopkg.in/urfave/cli%2ev1.Command.Run(0x7b0365, 0x5, 0x0, 0x0, 0xc000033ba0, 0x1, 0x1, 0x7b633a, 0x17, 0x0, ...)
/Users/antoine/go/pkg/mod/gopkg.in/urfave/[email protected]/command.go:210 +0x99d
gopkg.in/urfave/cli%2ev1.(*App).Run(0xc000088b60, 0xc000004440, 0x2, 0x2, 0x0, 0x0)
/Users/antoine/go/pkg/mod/gopkg.in/urfave/[email protected]/app.go:255 +0x6b6
main.run(0xc000004440, 0x2, 0x2, 0x0, 0x6f62c7)
/Users/antoine/Documents/perso/gfile/main.go:53 +0x20b
main.main()
/Users/antoine/Documents/perso/gfile/main.go:57 +0x50
rax 0x7ffcbb1d3590
rbx 0x7ffcbb1d358e
rcx 0x5f
rdi 0xffffffffffbadd11
rsi 0x0
rbp 0x0
rsp 0xc9f4f0
r8 0x0
r9 0x0
r10 0x0
r11 0x97c
r12 0xc000007a
r13 0x0
r14 0x7ffcbb1d3590
r15 0x7ffcbe610000
rip 0xd70000
rflags 0x10206
cs 0x33
fs 0x53
gs 0x2b
While transferring data, the sender suffers a disconnection after 40s-1min.
The sender reconnects automatically, but it's impossible to resume the transfer.
Disconnection issue fixed with pion/webrtc#480
If the connection is stable, the speed drops heavily over time, making the transfer of huge files almost impossible / really long.
Is most likely related/due to pion/sctp#23
The project is only using STUN for establish connection for now,
does that means if one is under symmetric NAT would likely failed to connect?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.