See my other post, please, if you are limited to using HTTP.
The modifications I made to Smack (1.4.2) are subtle, and the classes are pretty small, but they require some detail to explain properly. The library does work as is. It uses two threads -- one that parses incoming XML and dumps the generated objects into queues, another that actively polls queues and notifies your listeners. I found that in some cases where Smack expects you to use one model (active vs passive notification), you really would like to use the other. This led (I think) to a quote on the Web site that was something like "some developers find that the Chat class doesn't meet their needs, so they implement their own using PacketCollector, etc.". So I made some modifications and wrote a couple new classes related to that. I prefer to write my own queues and Runnables because you have more control that way. If you are not comfortable doing this, don't worry, their stuff works fine as is. You can just register listeners and away you go, updating your GUI in event handlers.
Yes, I would contribute my modifications, but first I need to document them (and also make sure they are still needed -- they update fairly regularly). I will share them with you either way if you go this route.
Erik
P.S. There are Applet chat systems out there that have been around for a long time. Don't forget to check those out. Also, there is at least one open source Swing client built on Smack that looks pretty good, especially in the area of SSL. See the Smack forums and you can find an announcement of it. Probably, there are JavaScript-based chat implementations out there too. If you are going to use JavaScript and have simple requirements, Leon's suggestion might fit the bill.
Lixin Chu wrote:
Hi, I am also interested in integrating a chat engine with my Struts application - with very similar requirements. In fact I posted a msg here before checking this thread !
I am not familar with any of the Sockets, ServerSockets, XML API or Threads. So looks like building from scratch is not an option to me; Smack sounds good, but with the problems you pointed out, I doubt if I am able to handle them correctly.
Would you contribute your modifcation back to Smack someday ?
appreciate your info very much ! lixin
On 5/5/05, Erik Weber <[EMAIL PROTECTED]> wrote:
I just finished putting together a system with a Swing client and combined services over XMPP and HTTP.
I think Leon's suggestion of doing your own is not bad, if you are good with Sockets, ServerSockets, XML APIs and Threads (find a good tutorial on building a chat system such as in the ubiquitous "Thinking in Java"). There is also JMS which gives you a low-level core. If you want something higher level, just get Smack from jivesoftware.com, which will give you an OO interface to Jabber (XMPP). Then get jabberd from jabber.org. jabberd 1.4 is small, written in C and gets the job done for what you are talking about, so I would start with that. They are working on the 2.0 "enterprise" version.
I will warn you that while Smack is a great library (you'll get classes such as "Chat", "Packet", "Message", "Presence", etc.), there are some pitfalls related to Threading to watch out for. I rewrote about a half dozen of the core classes. Fortunately, Smack operates with just two main disptach Threads so once you spend some time with the PacketReader and XMPPConnection classes, you'll figure it out. Apache license, too.
Erik
masegui wrote:
The requirements are these: 1. A user has a list of the other users in the system. He can click a button that initiates a conversation with the selected user. The other user can accept or not the conversation. If accepts, a "chat room" is opened and now then can have a conversation. The rooms only accept 2 people. We would like a user to be able to have several conversations at a time, but each conversation only between 2 people.
Thanks in advance.
Miquel Angel Segui
<-----Original Message-----> From: Leon Rosenberg Sent: 4/5/2005 10:50:38 AM To: user@struts.apache.org Subject: Re: [OT] Recommendation of Instant Messagging System
if your only functionality is to allow users to send each other
messages
which are embedded in the site (html, or something, but no standalone-desktop solutions) forget about existing systems and implement it by yourself. I have implemented dozens of such systems over the time, it's normally about 100 locs, much less effort than an integration of an existing system is.
maybe you could tell us a bit more, about the requirements of the system, so we could give you more specific answer.
regards Leon
On Wed, 2005-05-04 at 08:13 +0200, Miquel Angel wrote:
We are developing an application (struts 1.1 + Tomcat 5.5 + Java
1.4). One
of the requirements is to implement an instant messaging system for
the
users of the site (the system should not be very complex). Do you
mind to
share your experience in using this system. We are looking for free
or non
free systems.
Thanks in advance.
Miquel Angel Segui
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]