Re: [flexcoders] BlazeDS broadcast updates to others?

2008-06-19 Thread Cutter (Flex Related)
BlazeDS does not have true push (RTMP), it emulates push through 
polling. Basically your
update would push a message to a gateway, that then broadcasts that
message to a specific channel for BlazeDS, and the client's polling
would pick up that message from BlazeDS in it's next polling cycle
(think the default is 8 seconds, but that can be adjusted in the xml
config).

I don't have a demo, but Andy Matthews is doing a presentation to the
Nashville ColdFusion User Group next Thursday night (which will be
simulcast over Adobe Connect) that will show an application that does
this, and goes into some detail on the hows and whys. (www.ncfug.com
should post the Connect URL once it's closer to the preso)

Steve Cutter Blades
Adobe Certified Professional
Advanced Macromedia ColdFusion MX 7 Developer
_
http://blog.cutterscrossing.com

markflex2007 wrote:
 
 
 Hi,
 
 I am not sure if BlazeDS have broadcast feature or not that means it
 broadcase to other clients when one person update something in the same
 Flex application.
 
 Please give me a demo if you have the url or samples
 
 Thanks a lot
 
 Mark



RE: [flexcoders] BlazeDS broadcast updates to others?

2008-06-19 Thread Seth Hodgson
Actually, BlazeDS does support push via AMF/HTTP streaming. RTMP supports 
duplex client-server interactions over a single socket. HTTP is a 
request/response-based protocol so is not duplex by its nature and in order to 
simulate a duplex connection the client most open one HTTP connection to the 
server to receive pushed (or polled) data over, alongside a separate HTTP 
connection to send data to the server. The client-to-server connection is 
transient, opened only when the player has something to send to the server.

For streaming AMF/HTTP, the server writes data down to the client directly over 
the open connection, with no polling involved. Things like Apache connectors or 
old proxies that buffer HTTP response streams interfere with this, in which 
case we recommend configuring your ChannelSet to fallback to long polling or 
simple polling. Long polling provides a better client experience than simple 
polling on a set interval, because poll requests will be parked on the server 
to wait for something to return (using a timeout to avoid excessively long 
waits). For lightly loaded apps, this can significantly reduce the polling load 
on the server, and it means clients receive 'pushed' messages more immediately 
then they do with simple polling. Because each poll response is complete (as 
opposed to streamed/chunked) they are never buffered by connectors/proxies/etc..

BlazeDS doesn't include our NIO-based endpoints (RTMP and NIO-based AMF/HTTP 
streaming and long polling), so its streaming and long-polling support is 
implemented on top of the current Servlet API which only supports blocking IO. 
This means that you must limit the number of streaming or long-polling 
connections that the server accepts in order to avoid the possibility of 
putting all the container's request handler threads into a wait state, and we 
expose config settings for that. The next rev of the Servlet spec is adding 
limited support for async IO, and at that point BlazeDS will be updated to take 
advantage of it to scale to higher numbers of streaming and long polling client 
connections.

There's some more info on the channel options/behaviors here: 
http://www.dcooper.org/Blog/client/index.cfm?mode=entryentry=8E1439AD-4E22-1671-58710DD528E9C2E7
And the docset for LCDS 2.6 also contains much more information in this area.

In answer to the original question, the samples that are included with the 
BlazeDS turnkey contain some messaging examples. At a high level, you use 
Producer to send messages to the server and Consumer to subscribe for pushed 
messages from the server. Take a look at these client-side classes, the 
server-side Message Service, and the samples that use these.

Seth

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Cutter 
(Flex Related)
Sent: Thursday, June 19, 2008 10:24 AM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] BlazeDS broadcast updates to others?

BlazeDS does not have true push (RTMP), it emulates push through 
polling. Basically your
update would push a message to a gateway, that then broadcasts that
message to a specific channel for BlazeDS, and the client's polling
would pick up that message from BlazeDS in it's next polling cycle
(think the default is 8 seconds, but that can be adjusted in the xml
config).

I don't have a demo, but Andy Matthews is doing a presentation to the
Nashville ColdFusion User Group next Thursday night (which will be
simulcast over Adobe Connect) that will show an application that does
this, and goes into some detail on the hows and whys. (www.ncfug.com
should post the Connect URL once it's closer to the preso)

Steve Cutter Blades
Adobe Certified Professional
Advanced Macromedia ColdFusion MX 7 Developer
_
http://blog.cutterscrossing.com

markflex2007 wrote:
 
 
 Hi,
 
 I am not sure if BlazeDS have broadcast feature or not that means it
 broadcase to other clients when one person update something in the same
 Flex application.
 
 Please give me a demo if you have the url or samples
 
 Thanks a lot
 
 Mark