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" <[EMAIL PROTECTED]> 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.
>