Are there any pure JAVA clients available that use the JABBER protocal? All I can find on the web site for jabber are C/C++ implementations of clients. I know that there is a development library for JAVA called JabberBeans, but what about the clients themselves? Sorry this doesn't have much to do with the book, but I thought this would be a good place to ask anyway. Thanks.
Good questions. Ruilin, The book focuses on creating Instant Messaging in Java. I use the Jabber protocols (www.jabber.org) in the examples and as a reference for how this can be done but I tried to keep the discussion general because there are other IM protocols out there. Jabber is an open source, XML, distributed client-server IM protocol. Each term in turn is: open source - implementations, standards and documentation are released under GPL. XML - All data sent in the Jabber protocols is well-formed XML. Distributed client-server - the messaging architecture resembles email. Clients connect to central servers. Jabber servers control a "Jabber domain" and communicate between each other when messages must be passed from a user in one domain to another. Jabber IDs follow email format so email@example.com is a jabber Identifier for sending Jabber IM messages to user "iain" at the domain "shigeoka.com". You can learn a lot more on it at the jabber site (www.jabber.org) or pick up my book. Seriously, if you go to a bookstore and read the first chapter it should give you a good background on Jabber and IM. -iain
Gregg, Since your question involves Java and Jabber, it's close enough to the book to count for me. JabberBeans is definitely the most common thing I've seen out there as far as Jabber in Java. I recall someone doing some Java development using JabberBeans but I don't think it ever got past the early alpha stage. Al Sutton has a J2ME Jabber client. So does Streampath (www.streampath.com). I think there are other J2ME Jabber clients that will be shipping soon as part of the flood of Java smartphone market push. From what I've seen desktop clients are primarily native with C/C++ being the most common (many of them using JabberCOM). The Jabber protocols are relatively simple to access in Java once you work around the fact that you have to incrementally parse an XML stream (most Java parsers are setup to parse an entire XML document start to finish before giving you control/access to the data). So the real difficulty is creating a compelling, easy to use Java GUI (obviously a pretty big challenge). In fact the Jabber protocols are so simple to handle (its pretty much like writing an email client) that writing a client is really an exercise in GUI development. And I think that's why some people start in Java but most end up in Visual Basic, Delphi, or C++. I was even considering writing one in Flash. I do think that a Java client is a very worth while product. Obvious places include J2ME, applets, servlets, and enterprises that have committed to Java for their infrastructure. I look at LimeWire (www.limewire.com) and keep my hopes alive for a great Jabber Java client. -iain
I would like to know what are the main points to decide wich protocol i have to choose to build my messaging app, and the pros and flaws of every candidate protocol. Thanx! Juanjo [ June 19, 2002: Message edited by: Juanjo Bazan ]
Originally posted by Juanjo Bazan: I would like to know what are the main points to decide wich protocol i have to choose to build my messaging app, and the pros and flaws of every candidate protocol. [ June 19, 2002: Message edited by: Juanjo Bazan ]
It would be pretty hard to do a comprehensive survey. There are dozens if not hundreds of protocols that already exist or are being developed today. In evalutaing I'd probably ask the following questions: What network will I use? If you have tcp/ip you can use sockets. If you have Java at both ends you can use RMI. However you may be stuck with HTTP only, or SMS, etc. What clients will be used? Do you need to support embedded devices? Desktop clients? Web clients? Do you want/need/can afford to have a server? You can use peer-to-peer technologies if not (gnutella, JXTA, etc). What level of security do you need to have? Some protocols give you better security than others. What level of reliability do you need to have? Can you afford to pay for your solution? There are some open source alternatives but many of the high end ones are proprietary. What kind of data do you need to pass over the IM network? Streaming media files? Large data sets? Or just simple text chat? Do you need to have multiple vendors for solutions? Open source like Jabber has some advantages here but other comomn technologies exist such as Java Message Service (JMS), CORBA, etc. Do you need to have commercial support? Do you need to integrate with other desktop or server infrastructure. Like it or not MSN Messenger and Passport is well integrated into MS products and has a lot of advantages in that light (like integration into Outlook). Yahoo messenger can integrate well into their other web offerings, Lotus IM and Domino, etc etc. Once you answer these questions, you can start to evaluate the alternatives and narrow down the field to some small enough group to do indepth research and take it on some trials. Sorry there aren't easy answers for this one. -iain
You'll never get away with this you overconfident blob! The most you will ever get is this tiny ad: