Hi,
Sorry for crossposting (see http://drupal.org/node/328100) but I didn't get any replies on the d.org forum.
I'm searching for the best solution to provide 1-to-1 instant messaging functionality to logged-in users. My wishlist:
- a block with logged-in users (that's the easy part)
- when you click on a user, a chat window opens (no additional actions like login, create nickname, create chatroom etc.)
- when you send a message, it shows up on the screen of the other user
- not dependant on other accounts like msn, icq
- chats are 1-to-1; closed and invisible for others
- if possible, I would like not to be dependant of externally hosted 3rd party services
- preferrably Drupal 5
I've been looking at a number of modules, such as:
http://drupal.org/project/phpfreechat
http://drupal.org/project/messaging
http://drupal.org/project/ajaxim
http://drupal.org/project/xmpp
http://drupal.org/project/chatroom
Unfortunately they all seem to have their shortcomings. What would be the best solution? If there is not an out-of-the-box solution, should I take one of the modules and adapt it?
Thanks.
Comments
Friend feeds
The modules you list are all very different in their approach. This may be one of those times that the best way to do it is with something other than Drupal. To that end, have you looked at Talkinator? I mentioned it in another post similar to this one.
It's still a bit off in the future but my plan is to roll out something entirely different using FriendList (and this patch) and the Block Refresh module.
not the solution
Christefano, thanks for helping. In fact, I don't care if it's not a Drupal module, as long as it does what I need. I've looked at talkinator, but it's not the solution I'm looking for. I need 1-to-1 messaging (MSN-style), not a 1-to-many chatroom (IRC-style).
I think a Drupal module is more likely to solve my problem (or at least come close) because the messaging system obviously has to work together with the Drupal login system.
Talkinator can be 1-to-1
Talkinator can be 1-to-1 if only two people are in the same room. Custom code on the Drupal side can enforce this.
I'm not aware of a module
I'm not aware of a module that does this. Should be relatively easy. Just stuff each message in the DB and use ajax to pull messages into the chat window. If your chat feature got really busy, the table could get congested.
You're probably right - when
You're probably right - when you put it like this, it doesn't sound too difficult. I'm not an expert on db optimization though... Do you have any suggestions for the database design? Should I use two tables, one for chat sessions and one for chat messages? Should I add some kind of security key, to keep script kiddies from pulling in other people's messages? Would it be wise to add timestamps, so I can make cron automatically clean up?
New-ish IM module does just that ...
http://drupal.org/project/im does exactly this ...
I also plan to provide proper chatrooms (current implementation is a hack, but it works ... ) , integrate with OG, Taxonomy, specific nodes (like a CCK field that stores a chat session with the node - i.e. like a super comment)
Next steps will be get an official release out soon, and then accumulate lots of ideas, and go forward with refactoring, a proper API, and extensibility such that it can be "plugged in" to various uses.
Haven't really put it though the ropes in terms of high volumes, but i also haven't heard about any performance issues yet on the issue queue. Still m I want to allow a memcahe option.
The basic idea with the module is to allow sites to have internal chats without having to integrate with any external servers & protocols - keeping it really simple to install and configure.
p.s. i was fortunate to have Gerhard "killes" grant me maintainership on his abandoned 4.7 IM module, and thereby avoid adding "clutter" with yet another Drupal module :-)
Buddy Chat
Buddy Chat is intended to do what you want, but it needs a volunteer to help maintain it.
I've seen the buddy chat module
I've seen the buddy chat module, but the fact that it says 'Drupal 4.7' and has no releases, made me think that it is just as good a startingpoint as a blank page. The large number of open issues on the buddylist project does not look very promising either. Please tell me if I'm wrong.
The point is that it's
The point is that it's available. I don't care if someone starts from scratch. I'm offering it to prevent Drupal from being cluttered with yet another project. We can take buddy out of the name and just call it chat. What's missing is a volunteer.
OK, point taken
OK, point taken, I will consider that if I end up writing my own module. Thanks.
Privatemsg + Private Message Growl = ?
It's been a long time since I've used Privatemsg module but the new Private Message Growl module might entice me to try it again.
Have a look at druTalk
druTalk is a gtalk-like IM module. It works together with the User Relationships module and the Services module. With druTalk, drupal users can chat with their own friends of the same site. druTalk can be used in the following cases:
Social Networking
Customer Support
Collaboration
druTalk is a Flex application. It leverages the adobe stratus technology which enables peer to peer communications between flash players. So, the use of druTalk will not increase the server load. However, as many other p2p applications, druTalk (adobe stratus exactly) doesn't work in proxy environments.
http://drupal.org/project/drutalk