[JDEV] MIME, was My evil plans for a client.

Thomas D. Charron tcharron at my-deja.com
Mon Aug 9 13:10:54 CDT 1999

On Mon, 9 Aug 1999 13:30:53    arh14 wrote:
>Ok. I didn't know that Jabber's scope was that large.  Then it is 
>entirely desirable to route all messages through the server which can 
>then decide where they should actually end up.  In this scheme are the 
>"transport"s tied to their endpoint protocol?  And if so, is there a 
>reason they need to be?

  They talk to the etherx router via the protocol.  What they do with the data afterwards is their own buisness..  When they send data out to jabber users, they need to conform to jabber protocol, but on other ends, they can do whatever they want.  That is why a Jabber<=>SMTP transport could be done..  The transport is what carries the data from one thing into and out of the jabber 'network'.  Etherx is then in charge of routing the packets where they need to go, either to another etherx, or a local transport.

For instance, if the server recieves a message, 
>that message should be formatted independant of its destination.  If so, 
>this message can be transmitted to an arbitrary type of endpoints 
>(SMTP, IM, pager, whatever).  Is there a distinction between the Jabber 
>protocol and these "transport" protocols, and if so, why?

  I'm not quite sure I understand what your asking, but I'll stab at it..  All data is transported via jabber's protocols.  Extra data CAN be appended inside of CDATA segments in the <ext> tags if needed, but I can truely not think of a reason beyond binary data.  All transports need to know how to talk with this protocol to jabber users.  Anything else they want to do is their own buisness..

  Perfect example would be the really basic Jabber<=>IRC transport.  It talks to IRC as IRC, and any data coming in to IRC is then transfered into jabber.  It can then route the IRC data to ANYTHING that speaks jabber, hence, I COULD have a transport that monitors an IRC channel for nasty words, and send me a jabber message when it detects it..  Then, you see the fun..  Well, wait, I'm offline, Ok, so it looks at an alternate address in my profile..  Could be a alpha numeric cell phone/pager transport..  Sends it there..  COuld have been an Email, sends it there..  Heck, could be the AOL IM interface to send it to my AOL ID..

  See how it all shapes up, and the entire reason for having transports?

>?? Would that mean every Jabber client would have to be an HTTP server?  
>Or that the Jabber server would have to be an HTTP server?  Is there a 
>reason the Jabber protocol itself cannot handle messages that contain 
>files, and must rely on a separate protocol?

  Both ways work, merely an idea that was put forth.  Wouldn;t be a full fledged HTTP server, merely something that would say 'Ok, I'm listening for connection here, go ahead and do an HTTP get there, and I'll send it' in laymens terms..  I personally like the idea of embeding the data into message packets, but it DEFINATLY has it's cons..

>This was my view also.  Client to client would be no different from 
>client to server.  No need to use application(client)-specific protocols.

  Darned good idea of how to do it..  As long as it conformed, the only thing you would have to do it come up of a way to securely start the connection..  Once (if) moddigisign ever get's finished, it'd be a way to do it..

>So then the Jabber protocol should support the transport of heterogenous 
>data in some generic way.  I was seeing embedded MIME as the way to do 
>this.  That would obviate the need for any other protocols (HTTP, FTP, 
>client-specific, whatever).  If the client could parse MIME it could 
>automatically recieve data of any type...no need to even open separate 
>ports talking different protocols.

  I would as well..  This is what the <ext> flags are for...  I think we should support SEVERAL ways to transfer files, IMHO, and let the user choose, with the most proven method being the default..  Then of course, do you split up the messages, or send as one HUGE mime message?

>Yes, I hadn't realized the scope of Jabber extended to non-IM clients.  
>For non-IM messages, one would have to go through the server.

  That's the wonders..  I actually have my console messages on my Linux box forward to my jabber ID on my local machine..  This is what JNX is looking at..  Using Jabber for more then IM..  Check out http://download.jabber.org/archive/9904/msg00080.html

  The nice thing is, while it's scope CAN be grand, it's still simple on a low level..

Thomas Charron

--== Sent via Deja.com http://www.deja.com/ ==--
Share what you know. Learn what you don't.

More information about the JDev mailing list