Hi Adam,

 

Adobe is not working on this, although I'd encourage the community to. 

Here's why we're not.

 

1.       We're participating in the Servlet 3 JSR which will add async
IO support to the Servlet API (in the form of suspendable/resumable
requests). Once that API is finalized you can expect official support
for it in BlazeDS.

2.       The CometProcessor API in Tomcat and the pre-final version of
suspendable requests in Jetty are not standard APIs - they'll be
superceeded by what makes it into the official Servlet 3 spec, making
official Adobe support for these non-standard APIs a dead end.

3.       We provide NIO-based HTTP endpoints that support both streaming
and long polling in LCDS 2.6 and scale into the 10s of thousands of
concurrent connections. These endpoints share their underlying plumbing
with our existing RTMP endpoint. This works in any servlet container,
not just Jetty or Tomcat, making it consistently useful to all our
customers and affording us the ability to tune it directly.

 

That said, I'll reiterate that the community is encouraged to build
custom long-polling or streaming endpoints on top of the non-standard
Tomcat and Jetty APIs. Someone should take the lead on organizing the
community effort, and coordinating it. There's no sense in having ten of
you out there working on ten versions of the same thing J  One thing
you'll need to be aware of is that for threadless long-polling support
you can't rely on the JVM saving the current Thread's execution stack
for you on a wait() and resuming later via a notify(); you actually need
to save off the request processing state yourself in order to resume it
later. To help out with this, I moved our suspendable AMF filter classes
into the BlazeDS codebase so you guys should use that rather than the
existing AMF filter classes that cannot be suspended/resumed; they're in
the same package: flex.messaging.endpoints.amf.

 

Good luck and keep me posted,
Seth 

 

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of aduston1976
Sent: Friday, June 13, 2008 9:21 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Non-Blocking IO and BlazeDS Streaming

 

I need to push data to Flex clients, and I need more than 400 clients
to connect to each host. Even though I'm using BlazeDS for RPC, I was
thinking of using the XIFF XMPP library with a jabber server for
pushing data to clients, since streaming in BlazeDS uses blocking IO.
But, looking at the relevant classes in flex.messaging,
flex.messaging.endpoints, and flex.messaging.client in BlazeDS, I see
that it might not be too difficult to create a new servlet that
implements org.apache.catalina.CometProcessor and a new
BaseHTTPEndpoint subclass that can support multiple connections for
each thread. Such an implementation would be able to support over 10K
simultaneous streaming connections per host.

Is there anyone else who's working on this, or interested in working
on it? Is Adobe already on the case, making this a waste of time? Any
thoughts or suggestions are appreciated.

Adam

 

<<~WRD000.jpg>>

<<image001.jpg>>

<<image002.jpg>>

Reply via email to