[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [JDEV] Win client, File Transfers, invite tag..




> 	I will promise to at least have a Windows test client ready by then.  I've
> been unfortionatly busy as heck, and haven't had any time to have a working
> client with the new protocol complete.  Looks for a big Win32 checkin to the
> source tree sometime early next week.  I'm also disecting using the same
> expat sources you are using for parsing the XML, making it a bit easier to
> look at the client.

Excellent on all of the above points!  The C in /lib/* should be mostly
XP, so you might want to look at just using the whole common lib... but
there might be some excellent reasons not to for win32 stuff.

Realistically, any XML parser should do... just use whatever is most
convenient.

> 	I've also figured out a way to tentativly do file transfers via messages..
> What I've worked out is to have the client UUENCODE the file, then send it
> in chunks of message tags, like this:
>
> [large discussion snip'd]

I should have spoken up earlier on file transfers :)

I'll try to write up something more concrete soon here, but here is where
I've been heading with file transfers:

HTTP/1.1

Yup, that's right... let's use HTTP/1.1!  It already has EVERYTHING needed
to handle any type of file transfer, and it's commonplace, and it works.

Here's how, simple version:

	user x sending file to user z
	x selects file to send
	x starts small HTTP/1.1 file on high port for THAT FILE ONLY
	x sends z a special message(abbreviated):
		<message type='file'>
		<ext>http://123.231.12.21:23456/filename.zip</ext>
		</message>
	z recieves message and uses HTTP/1.1 to GET file

Ok, benifits:
	HTTP/1.1 can do resumes if it get's broken.
	ICQ/AIM transports could impliment "translator" daemons for it
	Recieving client could just spawn browser to fetch file
	Happens in background, leaves Jabber connection to work normally
	This could be simply a URL message, not specific for files
	I could go on and on, but I'm outta time :(

Further:
	A special module could be written on the Jabber server to use this
functionaliy for a "file archive".  The client would send a jabber message
to the module and ask for a repository, this would be configurable
obviously so only special users could use it or have size limits. The
module would reply with an: http://serverIPaddress:port/.  The client
would then PUT files up there via HTTP, and authenticate them with the
users username/password.  Then it would send out the location to GET them
like any other file message as above.  This would allow you to send files
to offline users, as well as send files to groups of users, just upload it
once and they all download it.  It is also a solution for transferring
files if you are going through a firewall.  Actually, it could end up just
being a normal apache and a special module or similiar... and you'd have
your own personal webspace...

There are some issues here yet, but I think this is the best way to go in
some form.  I've really gotta sit down and think this through clearly and
get it written down, but hopefully this will get the discussion started :)
		
> 
> 	Also, I've noticed the 'invite' that is checked in <ext>.  Should this now
> be moved to <message type='invite'> instead of having jabber.transport check
> the <ext> tag for invite?

Yup, just didn't get a chance to do that yet... 

> 	Ideas?  Comments?  People who want me to STOP asking questions and just
> shut the heck up?  ;-P

Ask away, discussion is good!

Jer