JEP-0124 HTTP Binding Support

As any thought been given to support JEP-0124 for HTTP Binding?

Also, without having looked at the plugin architecture, is it possible to implement this as a plugin to the current release? Or will this be more appropriate as a plugin once the ‘‘official’’ XMPP component spec is implemented?

Thanks

  • Danny

I think it’'s (close to) impossible with the current plugins to realize what you want.

I guess we’'d need another implementation of org.jivesoftware.messenger.spi.BasicConnection and currently I only see a SocketConnection

This sends raw xml using the socket - You’‘d need to add support for HTTP responses by subclassing one of these classes, I guess. The next problem would be receiving data. I’‘d start looking at +SocketReadThread +and ConnectionManager - but I’‘m not sure if that’'s a good start.

HTH

Daniel,

Actually, I think HTTP binding is the perfect candidate for a plugin – it would be much harder to implement purely as a component. As a plugin, you have the ability to get access to pretty much anything in Jive Messenger. HTTP binding is an interesting case since you’‘d need to dig under the covers of the API a bit. Hore’'s how I would do it: make the plugin also work as a WAR file and then tell the embedded Jetty instance to add the WAR file as a webapp. You can access the Jetty instance with (just checked this change into CVS):

org.jivesoftware.messenger.container.AdminConsolePlugin.getJettyServer()

You would then do something like:

jetty.addWebApplication("/httpbinding", pluginDir.getAbsoluteFile());

This should work very well in general. The only major problem is that the admin console typically runs on port 9090, which won’‘t work for some clients behind firewalls. Therefore, I’‘d suggest that the code also work as a normal web-app in an app-server (so it could be deployed to the server running on port 80). In that case, you’'d need to setup the web-app to tell it where the Jive Messenger server exists.

So, it would basically be one .war file (code in CVS will recognize plugins named as .war as well as the normal .jar) that can either act as a Messenger plugin or a normal WAR. In the case of a plugin, it runs inside the embedded Jetty. In the case of being deployed as a normal webapp, you have to configure where the Messenger server lives.

We’‘re actually using this exact technique for Jive Group Chat. I’'d be happy to provide more details if that would help.

Regards,

Matt

This is great information. I am not ready to dig in just yet, still doing some research. But I will definitely be pinging you if the time comes

Daniel,

HTTP binding support would be a very cool thing to have so I hope it gets past the research stage.

Regards,

Matt

"In the case of a plugin, it runs inside the embedded Jetty. In the case of being deployed as a normal webapp, you have to configure where the Messenger server lives.

We’‘re actually using this exact technique for Jive Group Chat. I’'d be happy to provide more details if that would help."

Hi, I’'m looking for a http chat system that I can use with VRML 3d client.

This sounds like what I want - can you provide those details?

thanks,

dm