It looks like this is something we (Adobe) are going to need to 
improve upon though there is a workaround for now.

First off a little background info.  There are two different ways you 
can manage subscription timeouts with FDS.  If you set the session-
timeout on the destination to 0, FDS ties the subscription for a 
given client to the flex session's lifecycle.  If your destination is 
setup this way, invalidating the session will remove the subscription 
for that consumer (this is the same as calling consumer.disconnect on 
the client).  This has the effect of disconnecting the consumer, and 
if that consumer is the last service using a given channel it will 
drop the connection.  Unfortunately this will not disconnect the 
producer and usually a client will have both a producer and consumer 
using the same channel.  So you'd still need to send a message to the 
client to tell it to disconnect the producer (as well as any other 
services using the channel).  Also, this assumes a cooperative SWF 
and does not address the "hacked swf" which can ignore this message.

Note however that for now at least there is a workaround for this 
hacked SWF case.  If you throw a runtime exception from the code 
which is handling a message, the RTMP channel is closed which will 
prevent the malicious SWF from continuing to use that connection.  
This is a short-term workaround at best and that behavior might 
change in the future (since it is not clear you always want an RTE to 
abort the connection).  I think we need to provide a more reliable 
way for the server to unconditionally close the RTMP connection for a 
given client and this is likely serious enough to warrant a hotfix in 
the near future.  

If you set an explicit session-timeout for the destination or leave 
it as the default (20 minutes), the subscription is not tied to the 
session and invalidating the session does not affect the consumer's 
subscription or connection state.   

Jeff Vroom

--- In [email protected], "Dave Wolf" <[EMAIL PROTECTED]> wrote:
>
> More reason to simply destroy their J2EE session which would let the
> container enforce the ban.
> 
> -- 
> Dave Wolf
> Cynergy Systems, Inc.
> Adobe Flex Alliance Partner
> http://www.cynergysystems.com
> http://www.cynergysystems.com/blogs
> 
> Email:  [EMAIL PROTECTED]
> Office: 866-CYNERGY
> 
> --- In [email protected], "Tom Bray" <tombray@> wrote:
> >
> > That would work if we could trust that our SWF hasn't been 
hacked. 
> We have
> > people trying to hack our clients all the time and they're often 
the
> ones we
> > want to disconnect in the first place.  If we relied on the 
client to
> > disconnect itself, these guys would prevent that message from 
getting
> > through.
> > 
> > -Tom
> > 
> > On 7/23/06, James Ward <jamesw@> wrote:
> > >
> > >   I can't find anything in the api:
> > > http://livedocs.macromedia.com/flex/2/fds2javadoc/index.html
> > >
> > > However, this could be easily achived my sending a message to 
the flex
> > > client (via messaging) which told the flex app to disconnect.
> > >
> > > -James
> > >
> > >
> > > On Sat, 2006-07-22 at 14:28 -0700, Tom Bray wrote:
> > > > No, I'm talking about disconnecting on the server-side with 
Java. In
> > > > other words, getting a reference to the server-side client 
object
> > > > using the FDS API and disconnecting it.
> > > >
> > > > -Tom
> > > >
> > > >
> > > >
> > > > On 7/22/06, James Ward <jamesw@ <jamesw%40cayambe.com>>
> > > wrote:
> > > > Yup. Look into the disconnect() method on Consumer and
> > > > DataService
> > > > objects.
> > > >
> > >
> 
http://livedocs.macromedia.com/flex/2/langref/mx/messaging/Consumer.ht
ml#disconnect
> > > ()
> > > >
> > >
> 
http://livedocs.macromedia.com/flex/2/langref/mx/data/DataService.html
#disconnect
> > > ()
> > > >
> > > > -James
> > > >
> > > >
> > > >
> > > >
> > > > On Fri, 2006-07-21 at 14:07 -0700, Tom Bray wrote:
> > > > > I'm coming to FDS from FMS2 where I have the ability to
> > > > disconnect any
> > > > > client for any reason -- say after a period of inactivity or
> > > > because
> > > > > an administrator of the chat has banned a user. Can I do
> > > > this in FDS?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Tom
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >  
> > >
> >
>







--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to