tus / tus-resumable-upload-protocol

Open Protocol for Resumable File Uploads
https://tus.io
MIT License
1.5k stars 102 forks source link

Transfer over websockets #199

Open luk- opened 11 years ago

luk- commented 11 years ago

at @wayla, we're heavily using websockets for file uploads & downloads. I haven't been through all of the @tus docs yet, but has there been any discussion of using websockets for transport?

felixge commented 11 years ago

It's not entirely out of question, but I don't think it will be a priority for now. However, once we have an initial simple protocol we like, I'd love to review any proposals that extend things for websocket support.

trickkiste commented 4 years ago

What would be even better, would be an MQTT implementation of the TUS upload protocol. This would instantly allow uploading files to multiple targets at once!

Comes in handy, if you want some redundancy - e.g. multiple servers serving the same files.

Acconut commented 4 years ago

Interesting idea! Are you saying that the client should talk to the server using MQTT? I have never used it so I honestly don't know how that works.

trickkiste commented 4 years ago

Hi Marius!

Yes exactly, virtually all MQTT severs/brokers provide a websocket interface as well, so you can conveniently connect to it from your browser or web app. And it works great, provides some advantages over HTTP also, one of which is higher energy efficiency, ergo being better suited for mobile devices.

Facebook chat is implemented on top of MQTT e.g.

MQTT is also the main protocol used in IoT communication. It follows a publish/subscribe schema.

MQTT messages consist of an UTF8 topic and data, which can either be text or binary data of up to 265 MB. While sending small chunks would make more sense in this case. Binary being real unencoded binary is also rather convenient.

The itch an MQTT tus.io implementation would scratch for me is, that I can conveniently send data through NATs this way.

I am planning some app, which stores all data privately on the users "storage node" (something like a Raspberry Pi but with Mini-PCIe SSD). I can therefore provide the app on the web and let the user connect to his storage node by connecting an MQTT broker, which the storage node is connected to as well.

That way, I can still use the app anywhere in the world but still everybody has their data home savely.

Sounds good?

Cheers, Markus

Am So., 7. Juni 2020 um 16:36 Uhr schrieb Marius notifications@github.com:

Interesting idea! Are you saying that the client should talk to the server using MQTT? I have never used it so I honestly don't know how that works.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/tus/tus-resumable-upload-protocol/issues/199, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKDWZRF6ZCDZFXML2HBQOLRVOQVTANCNFSM4AEYQ7LQ .

Acconut commented 4 years ago

Thanks for the explanation, it seem as if MQTT offers some benefits. It would be interesting to dig further into this topic but I am unsure if it's really worth for now since tus over HTTP is already very powerful.

Acconut commented 1 month ago

Moved this away from the tusd repository since this discussion is about the protocol itself instead of a specific implementation.

That being said, I am not convinced that data transfer over WebSockets provides much benefit compared to normal HTTP requests, especially when compared to the additional complexity.