Thanks Seth, you've explained it pretty clear. I got it - unique RTMP port is required for each RTMP endpoint.
Robert --- In flexcoders@yahoogroups.com, "Seth Hodgson" <[EMAIL PROTECTED]> wrote: > > The RTMP endpoint runs its own internal server process to handle RTMP connections. This process needs to bind a port to accept connections on. If you're running multiple web apps on the same server, each with their own RTMP endpoint, these endpoints need to use unique ports (you can't have multiple processes bind the same server port to accept connections on). We deploy into a Java server as a web app which has pros and cons, and while the pros outweigh the cons, in this specific case RTMP configuration is not as trivial as it would be in a perfect world when you're deploying multiple apps in the same container. For servlet-based HTTP traffic, the servlet container is handling all network connections and IO, and routes inbound requests to the proper web app based on the requested URL; the web apps themselves aren't handling any network connections or HTTP traffic directly. This means that all of your web apps can be exposed on a single HTTP port (80 or 8400 or whatever) uniformly. But for RTMP, where we have to handle the networking ourselves, there's no safe way to have a single RTMP endpoint that services connections for any and all web apps because we're running within the context of a specific web app rather than as core code in front of all the web apps, and web application startup order isn't guaranteed to be deterministic and individual apps can be undeployed/redeployed at runtime making sharing a single RTMP endpoint defined in one web app with other web apps something we haven't tried to support - there are all kinds of ways for things to go wrong with that. > > An analogy would be trying to run each of your web apps in a unique instance of your Java server on the same machine. Try starting up multiple instances of Tomcat, each hosting just one of your web apps, where each Tomcat instance is configured to handle HTTP traffic on port 8400 - it doesn't work. > > So you need to define a unique port for each RTMP endpoint, and you'd need to build your client for each web app to use the proper corresponding port. > > Hope that helps, > Seth > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Robert Csiki > Sent: Friday, May 16, 2008 8:25 AM > To: flexcoders@yahoogroups.com > Subject: [flexcoders] Re: RTMP port 2038 > > Thank you all. > The use case is we noticed we can't depoy the same webapp twice on the same server host (the second one won't work right, because port 2048 is already taken). We tried changing the port but it did not work as the initial port value is burnt into the SWF. > BTW, I can't find the DataService in FB3 online help documentation. It used to be ther ein FB2. What happened? > Thanks, Robert > > --- In flexcoders@yahoogroups.com, "Seth Hodgson" shodgson@ wrote: > > > > Create your RTMPChannel in ActionScript and assign it to your components for use. When you want to change its URL, invoke disconnectAll() on your ChannelSet, update your RTMPChannel's URL, and reconnect (by making a remoting call, issuing a DataService fill, etc.) > > > > I'm not sure what the use case is here though? Distributing a swf that will work against various servers which may be running their RTMP endpoints on different ports? > > > > Seth > > > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Robert Csiki > > Sent: Thursday, May 15, 2008 3:27 PM > > To: flexcoders@yahoogroups.com > > Subject: [flexcoders] RTMP port 2038 > > > > Is it possible to change this port value in LCDS without the need to rebuild the SWF? > > Thanks. > > >