15 ms·
Direct file transfer via browser with no server involvement
- hbornfree 5y agoWhat's happening behind the scenes? Without knowing that it's hard to take the claim of 'no server involvement' at face value. Does the sender have to be up for the receiever to receive?
- vbezhenar 5y agoIt seems to use WebRTC. Sender have to be up.
- www_harka_com 5y agoYes, sender has to up. Also the file must not be deleted. I checked both and the transfer was interrupted. Neat. :)
- mnw21cam 5y agoThe latter will surely depend on your operating system and its file handling semantics. In general, in Windows if something is reading a file and you delete the file, then you're actually deleting the file and the reader will be interrupted (assuming you manage to set it up in a way such that you actually can delete the file at all). In Linux, when you delete a file, you are actually unlinking the file from the directory, so the reader maintains a reference to the actual file and can carry on as normal. The free space will be reclaimed when the reference count decreases to zero when the reader closes the file.
- wanderingmind 5y agoDidnt read the link as its not https, but if you are looking for a solution to transfer files across multiple devices, try syncthing[0], its opensource and does real time sync [0]https://docs.syncthing.net/index.html https://docs.syncthing.net/index.html
- mkl 5y agoSyncthing is great, but has a very different purpose.
- 1680168l 5y agoNeeds vetting. Open-source?
- kevingadd 5y agoMinified and obfuscated so it's hard to tell what's going on in this but it looks like it uses WebRTC to do peer-to-peer transfers, with the aid of a STUN server to establish the initial connection.
- capableweb 5y agoHere you have a somewhat unminified/reverse-engineered source: https://pastebin.com/NzP3KMKy https://pastebin.com/NzP3KMKy Some of the variables are harder to infer what they mean though, so it's incomplete.
- spurgu 5y agoNice. What did you use to generate this? How much of the work was manual?
- rguiscard 5y agoI have no idea what's behind the scenes, but was surprised that such small Javascript can do this trick.
- huhtenberg 5y ago> Your browser is not supported, consider downloading Chrome.
- thunderbong 5y agoI don't get this error in Firefox
- SturgeonsLaw 5y agoI'm getting it in Firefox but I'm assuming that's because I have WebRTC disabled
- pmontra 5y agoThat's it. I got the error, enabled WebRTC and it worked. A better error message would be "You need a browser with WebRTC enabled to use this service." Chances are that if the feature check for WebRTC fails the user intentionally disabled it and knows how to enable it again.
- hutzlibu 5y agoIf a user knows how to disable webrtc, he or she should also know that this is the technology needed for direct data transmission, so should not wonder why nothing works. And sure, they could add x finegrained error messages, but I doubt there are too many people who have this setup, that this is remotely a priority.
- kelnos 5y agoSeems to be using WebRTC, so presumably it's using STUN servers to do the NAT hole-punching. So not really "no server involvement". But I suppose that would be basically impossible on today's internet. Hopefully it's not also using TURN servers if STUN fails...
- capableweb 5y agoNot even, the application is making GET, POST and PUT requests to send the file to a /link endpoint which also the receiving side is hitting. How is this even close to being "no server involvement"? It's misleading, because the server is very much involved here. > But I suppose that would be basically impossible on today's internet. P2P is possible on the internet (100% without centralized servers), but it's not possible without STUN/TURN on the web.
- iCarrot 5y ago>the application is making GET, POST and PUT requests to send the file Have you looked at the actual payload of the POST/GET/PUT requests? It only contains the WebRTC offers/answers. Actual file transfer is via local WebRTC. The site also claims that it only work for "devices on the same network", so there's no need for any STUN/TURN because there's no wall to punch.
- meheleventyone 5y agoEven on the same network you might need TURN. Browsers use mDNS addresses for local connections rather than leaking internal IPs and if your network doesn’t work with it then a direct connection will fail. You can disable this but it’s not ideal. Getting P2P connections working reliably is an effort in edge case discovery and either fixing it or falling back.
- remram 5y agoIf those POST/GET requests are coordinating the transfer and exchanging metadata, "no server involvement" is still wrong. It's like saying you can connect to a domain name like google.com with no DNS involvement, because you only get the address and then the connection is over HTTP.
- wwarek 5y agoAlternatively, using the same technology: https://www.sharedrop.io/ https://www.sharedrop.io/ and actually multiple others. Quite convincing to transfer files between devices in LAN, instead of looking for USB cable to connect the phone or trying to establish (never working and much slower) Bluetooth connection.
- eps 5y ago* convenient
- wwarek 5y agoOf course, thanks
- vermilingua 5y agoI like sharedrop and was using it for quite some time; but as of late it has become unreliable, either not allowing clicking on other machines, or reporting the transfer as successful when the destination has received nothing at all. I suspect this is primarily a UI issue, but the whole product is just a UI wrapper on a WWW protocol, so a mere UI glitch is quite devastating.
- causi 5y agoYou find it easier than just using your phone's file manager to access shared drives?
- BiteCode_dev 5y agoShared drives ?
- causi 5y agoYeah, network drives. Like this: https://i.imgur.com/aRS0EdO.png https://i.imgur.com/aRS0EdO.png
- kybernetikos 5y ago
- jeroenhd 5y agoLooks like a nice POC. Is there a practical reason why this website isn't using HTTPS?
- xg15 5y agoWait what? It seems to use WebRTC, how is this even possible without https?
- dmje 5y agoUsed to use sharedrop.io but found the “saved messages” option in Telegram is just the most zero friction option for mobile <-> desktop transfers.
- grandpoobah 5y agoI do the same, and I think it's sad that this is the best we can do in 2021 :)
- _trampeltier 5y agoIt's even more worse in the mobile world. I would share a lot of pictures after two weeks holiday with somebody who has an Iphone. I have an Android phone. There is not way to transfer pictures direct from Android to Iphone (holiday location != flat rate). WTF 2021.
- crtasm 5y agoUse an app like https://www.lonelycatgames.com/docs/xplore/wifi-share https://www.lonelycatgames.com/docs/xplore/wifi-share over the local wifi (or make the android a hotspot to connect directly) ?
- _trampeltier 5y agoYes if course there are Apps. There are Apps for everything .. but this should work just without something special.
- crtasm 5y agoyou want hotspot/wifi filesharing standard with the OS? would be useful indeed but I'm not surprised we don't have that. maybe running python -m http.server in Termux is more attractive.
- GoblinSlayer 5y agoOpen the picture on the screen and let iphone scan it.
- DeathArrow 5y agoNice if you don't have time to set up shared folders or if you want to send over Internet and you don't have a messaging app at hand.
- fawazar 5y agoJust tried it. I just got connecting... firefox on windows and iPad also tried with iPhone with firefox got the same.
- namibj 5y agoAlso consider WebTorrent, easily accessible via https://instant.io/ https://instant.io/ .
- opensmtpd 5y agoI've also been satisfied with Wormhole[1]. Been using it ever since Firefox Send was discontinued. > If you like Instant.io, try Wormhole from the creator of WebTorrent and Instant.io. It's like Instant.io, but adds end-to-end encryption and links that keep working even after you close your browser. [1] https://wormhole.app https://wormhole.app
- SubiculumCode 5y agoI loved Firefox Send, but part of its appeal was I know Mozilla as an organization.
- or-gate 5y agoI don't remember it working at least once for me. PC to Android, Android to iOS or iOS to PC. May be only works properly for PC to PC.
- alibert 5y agoI'm using a self hosted instance of https://github.com/RobinLinus/snapdrop https://github.com/RobinLinus/snapdrop Works great on local network (even mixed: windows/macosx/ios)
- dschuetz 5y agoOh, you mean in-browser P2P? Wait, no, all peers need to be able to resolve cend.me somehow to download the code? What problem is this solving exactly?
- apexalpha 5y ago<hacker news> Why would anyone use this service when you can just transfer files by temporarely opening a TCP port and starting a netcat listener that you pipe into the file you want? It's as simple as nc -lvnp 1234 > myfile.txt The other party then only needs to pipe the file into a netcat socket from their commandline. nc -w 3 IP < file.txt </hacker news> Jokes aside I'm intrigued at the "no server involvement". I'm assuming they mean the file isn't transferred through the server but directly (WebRTC?). There is probably still some server involvement to get around the firewalls / NAT. I don't think this will work if you just host your own instance of it.
- capableweb 5y ago> I'm assuming they mean the file isn't transferred through the server but directly (WebRTC?) Why are you assuming so, checking how it works is trivial if you open up the Network inspector. I did so in Chrome, and as I said in https://news.ycombinator.com/item?id=29225472 https://news.ycombinator.com/item?id=29225472, uploading happens by doing a POST request to the server, and fetching happens by doing a PUT request, not sure why people keep re-iterating that it's probably WebRTC when it's really not, this is just a very basic, centralized server that does the receiving/sending of the file... And what do you mean "host your own instance"? There is no source code available from the website, so how would you host it exactly?
- jeroenhd 5y agoThere is WebRTC code in the javascript source. It looks like some kind of POST/PUT code is used to exchange metadata about the files, but the files themselves don't seem to get transferred to the server. Or maybe you're seeing different behaviour from everyone else because WebRTC is not behaving right and you're getting the fallback behaviour? The "with no server involvement" part of the title is definitely wrong, this needs some kind of server to orchestrate the transfer itself. The server doesn't seem to receive the file contents, though.
- remram 5y agoThat sounds like a lot of "server involvement" to me.
- Kiro 5y agoContrary to some misleading comments in this thread it is in fact using WebRTC. The crux is that WebRTC doesn't show up in the normal Network tab but if you go to chrome://webrtc-internals/ you will see the action.
- shime 5y agoAs an alternative, you could use: https://wormhole.app/ https://wormhole.app/
- thenthenthen 5y agoWow this is indeed a wormhole, instantly crashing my browser on opening the site (osx 10.15.7, latest firefox)
- Anunayj 5y agoAnother that comes to mind is http://xkcd949.com/ http://xkcd949.com/ ofc named after https://xkcd.com/949/ https://xkcd.com/949/
- t0mbstone 5y agoWormhole.app appears to actually be uploading the file to a remote server though?
- lbill 5y agoI think the website could use an "about" section, with some examples. At first glance I thought it was an alternative to wetransfer, but it isn't!
- danlugo92 5y agoI'm seeing less than 4MBps transfer speeds. I would expect them to be faster? (100mbps wifi = 12MBps speeds).
- zamadatix 5y agoWiFi is a half duplex shared medium that can have interference from other WiFi networks and non WiFi speaking sources. All of this makes it extremely difficult to say what is good or not. If that's between 2 clients on the same WiFi network that's actually pretty impressive. If it's WiFi on one side and hard wired on the other with no other wireless clients or interference then it's not really good but not horrendous either.
- the8472 5y ago100 milli bit per second is not 12 mega byte per second.
- Markoff 5y agoDirect file transfer with no server involvement.* *except the server website runs on and servers your files will go through since you need somehow connect those two devices unless you are on same network
- steren 5y agoAnother very nice peer-to-peer file sharing website is https://wormhole.app/ https://wormhole.app/