Messenger Server Extensions

Hi,

I am currently considering using the messenger as the basis for a server architecture in an upcoming product. I love the smack library - in under 5 hours I had a fully functional client going!

I am really wondering if the server is as customisable as the client library. We want to do some non-standard things with the server such as:

  1. Allow different “types” of users. Some users should be able to browse the available users, some should not.

  2. Interact with paypal’'s payment notifications to create new users, then email them back the details.

  3. Allow offline messages, and multiple recipients per message (this is for the case of sending in-band serialised objects which are large).

Are any of these features available, or hard to implement? Where would I start with messenger?

Regards,

joe

Joe,

Iain (the lead developer on Jive Messenger) is out on vacation, but I’'ll attempt to answer your questions.

First, I’‘m glad to hear that your experience with Smack has been a good one. The same general approach of creating a simple yet powerful system has been taken with Jive Messenger. However, it’‘s likely that in order to achieve all the customizations you’‘re looking for, you’'d need to use the upcoming 1.1 release.

  1. Allow different “types” of users. Some users

should be able to browse the available users, some

should not.

Is there a specific JEP you want support for, or would this be a custom JEP?

  1. Interact with paypal’'s payment notifications to

create new users, then email them back the details.

This should be very possible since the user creation and authentication pieces in the server are pluggable. If you provide some more details about how the Paypal interaction would work, we could suggest some approaches for implementing it. Also, this is something that the 1.1 release will help with – doing user and auth integrations is quite a bit easier.

  1. Allow offline messages, and multiple recipients

per message (this is for the case of sending in-band

serialised objects which are large).

Messenger suports offline messaages and you can also specify a max size of stored messages. As far as I know, it’‘s not possible in XMPP for a message to have multiple recipients. Therefore, you’'d need to send the same message once for each person.

Also, we still need to do some work in Smack in order to support IBB. I believe you’'ve posted in the Smack forums about this?

Are any of these features available, or hard to

implement? Where would I start with messenger?

All of these customizations should be possible, especially using the 1.1 release. I would recommend downloading messenger 1.0.8 so that you can become generally familiar with the system. When a 1.1 beta release is available (likely in a few weeks?) you could begin actual integration work. Iain will also be able to provide some more specific development advice when back from vacation.

Regards,

Matt

Hi Joe,

Are any of these features available, or hard to

implement? Where would I start with messenger?

All of these customizations should be possible,

especially using the 1.1 release. I would recommend

downloading messenger 1.0.8 so that you can become

generally familiar with the system. When a 1.1 beta

release is available (likely in a few weeks?) you

could begin actual integration work. Iain will also

be able to provide some more specific development

advice when back from vacation.

I’'ll be including instructions with the 1.1 release on how to integrate custom backend systems with Messenger. I agree with Matt that each of your needs can be met but that they all seem to require some additional data exchange that may require some extra customization.

For example, Messenger 1.1 allows you to easily provide your own implementations of the user account storage system. You could create a simple filter that could see an account creation, set up a payment in paypal, and notify the user. However, you’'ll need to obtain paypal information which is not part of the standard XMPP/Jabber registration protocol.

-iain

Thanks for the replies guys. I will get back to you when I have implemented it (or get stuck:P )

regards,

joe