[JDEV] File transfer and Jabber

mark at mjwilcox.com mark at mjwilcox.com
Mon Apr 23 11:52:57 CDT 2001

I think using Jabber to send files is a waste of bandwith and time. 
Look, email attachments were a bad thing. 

Attachments waste bandwith, disk space and you force every user 
who you send the message to, to consume network resources 
*even* if they don't want to.

They were only implemented because we didn't have any other 
mechanism, more importantly nothing like a URL for universal 
naming scheme had been created and hyperlinks weren't widely 

Don't make the same mistakes with IM. Recognize the fact that for 
every person who has access to an IM client, they also have 
access to a Web browser. Instead of sending actual data around 
the jabber network, send URLs to files on a Web server. If I want to 
read your file, I'll download it.

The hardest part about using URLs is getting the files to a web 
server. But that's fairly easily solved by using the WebDAV 
protocol. If people want to attach a file in the jabber client, have it 
save teh file to a public directory via DAV (IIS has DAV out of the 
box and Apache has mod_dav, with Apache 2 DAV will be out of 
the box as well). The jabber client maintains knowledge of the URL 
and sends that to the end-user(s). They click on the URL, their 
browser starts up and they download the file.

This conserves network resources because the largest component 
(the file to be downloaded) is only sent on request, instead of 
pushed out whether you want to or not.

BTW This idea was mentioned by Jer himself about a year ago.

Come on people, we're pushing a new envelope here. 


On 22 Apr 01, at 12:52, Rob Kooper wrote:

> Ok, just to start thinking about this and maybe at one point start
> implementing this into the server (will need some help from client
> developpers).
> Since we already have the whole connection system in jabber I was
> thinking of when I want to transfer a file, I'll send it to the server
> that I am connected to and send the file as chunks (size and rate
> depending on flowcontrol parameters). The server can then either
> collect the chunks till all data is received, and then send the chunks
> to the receiving user (after first asking for its flow control
> parameters).
> The xml-data (not familiar with xml so will have to do a quick read
> for this part) will contain, sender, filename, msgnumber and total
> msgs. This way we can have some simple progressbar, and the receiving
> user can see who is sending (and potential cancel).
> The flowcontrol I am talking about will contain the size of the packet
> to send and the time between packets. So for instance if I have a 56K
> modem, I can decide to make my packetsize 10K, and half a second time,
> this will result in jabber sending the file in burst of about
> 2seconds, with half a second inbetween for other messages to come
> through.
> My thinking on why to do this, is that if the user has a proxy (even a
> http proxy) the data will still arive, no need to know ip-address of
> receiver. Also if the data is encrypted using SSL or pgp, the file
> will also be encrypted.
> Comments please,
> Rob
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev

Mark Wilcox
mark at mjwilcox.com

More information about the JDev mailing list