Hi Robert,

Chances are you're trying to use DataService with auto-sync enabled over an 
AMFChannel that doesn't have polling enabled; if that's the case you won't 
receive any pushed updates. Auto-sync can be disabled for a DataService (say 
you're just doing CRUD interactions with the server and don't need pushed data 
in your app), and in that scenario using an AMFChannel with polling disabled 
works fine.

Any channel type can be used with any service component. There's a general 
overview of the channel options and why you'd prefer one over another here, and 
the doc team is currently working on lots of improvements to the official 
docset in these areas: 
http://www.dcooper.org/blog/client/index.cfm?mode=entry&entry=8E1439AD-4E22-1671-58710DD528E9C2E7

In terms of which channels are used by the client to interact with the server, 
this is defined by the order that Channels are assigned to your client-side 
ChannelSet (if you set things up directly in code). 
Or in the more automatic case, it's based on your services-config.xml file 
<default-channels> config, or a specific service's <default-channels> or a 
specific destination's <channels>. The best practice is to just define this 
list once at the top level in services-config.xml within the <services> section:
    <services>
        ...
        <default-channels>
            <channel ref="rtmp"/>
            <channel ref="amf-polling"/>
        </default-channels>
    </services>
This default setting is applied to all services and destinations, unless you 
override at a specific service or destination. There's really no good use case 
to do that though, so just define the set of channels clients should use here 
at the top level. This list of Channels is what is "burned" into your swf when 
you compile with the -services option, and it's used to dynamically construct a 
ChannelSet on the client at runtime.

There's no magic in the ChannelSet to determine which Channel from among the 
set to connect with - it starts with the first, and advances through until it 
successfully connects. If it looses connectivity, it continues through the list 
from its current position. So this component provides reconnect and 
high-availability by falling back through its options. So for the example 
above, the client will first try to connect via RTMP to your server-side RTMP 
endpoint's URL, and if that fails (say the client has a firewall blocking that 
port), it will fall back to a connect attempt over your AMFChannel (which has 
polling enabled).

Hope that helps,
Seth

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Robert 
Csiki
Sent: Friday, May 16, 2008 8:33 AM
To: [email protected]
Subject: [flexcoders] LCDS and channel usage

Hi there,
What channels are compatible with what service objects? For instance, I noticed 
the AMF family is not good for DataService. If you know of a ling that contains 
this service/channel matrix, I'd appreciate if you'll point it to me.
Also: for each of the available services (DataService, HttpService, WebService, 
RemoteService), whenever they support multiple channels, what's the order these 
channels are being tried by the framework? Is this order configurable? How the 
framework decides the channel to use (the "current channel")?
Thanks, Robert
 

Reply via email to