Hi all,

I've been trying to make it easier to integrate WAIB with other applications. This would require removing the dependency with Jetty which isn't very easy due to the WebSockets support.

The guys in charge of Socket.IO java have a branch (https://github.com/Ovea/Socket.IO-Java) where they've removed explicity jetty dependencies and created an extension mechanism so I got in touch with Mathieu Carbou to see if they would be supporting other web servers and he told me that they've been discussing with the Cometd guys and would be holding the work on Socket.IO Java.

This is his reply to my question :

"For Socket.IO, we first planned to do a huge refactoring:
* migrate to latest socket.io JS version * adding features like event bus system (publish/subscribe like cometd) * adding queuing of offline messages * reconnections * adding native support for grizzly websocket (tomcat is already supported through continuations)

Most of these work is done in Ovea GitHub in js-eventbus project.

But since our project (jaxspot.com) must run over desktop, tv and mobile infrastructures, we faced an issue and found socket.io not as reliable as we would like. The connection is also very slow on non-websocket browsers and the library needs a flash application - we should be able to put it as optional.

By discussing with Cometd guys, they support websocket since their version 2 (which was released after we begin the work on Socket.IO-Java). Cometd guys supports less transports: the reason is that long polling is just plain ajax requests - so no need in current browsers to have iframe or script hacks. Also they do not support long streaming because only Gecko browsers is able to do this and they found some buffering issues with using streaming for a long time. Moreover, long streaming is useless because the protocol needs a ping/pong handshake each 15 seconds (done by Socket.IO). So there is actually far more connections made with long streaming that with long polling, which is the opposite of what we would have though at the beginning ;-)Their version 2 also support extensions, reconnection, and the client library works on all browsers. On server-side, they also use Jetty Continuation, bu we have the ability to add extensions (i.e. streaming protocol) or even probably other native support like grizzly websockets I suppose.

So we are currently holding the work on Socket.IO Java and we will soon do a PoC with Cometd. Since our web application is completely event-driven it would fit better. The big issue we have with Socket.IO is that we must develop things on top of it to make it more reliable / friendly, it needs a

I was wondering... What is the reason that made you also choose Socket.IO for Wave ? Is it the fact that there was only this library supporting WebSockets ? Or did you tried Cometd and found some limitations in it ?"

I asked for his permission to post his reply in this list and would like to know your opinion on this matter.

Best regards,

    Nelson Silva

Reply via email to