[REBOL] Re: AltME: Something new from our team.
From: g:santilli:tiscalinet:it at: 21-Nov-2002 16:17
Hi Petr,
On Thursday, November 21, 2002, 3:21:56 PM, you wrote:
PK> I would be having fun, if I would know how to get it working from behind
PK> the firewall. Why don't you allow proxy settings or why don't you use
PK> http tunneling like IOS does, please?
I think that HTTP is too limited to allow IM in a smooth way. I
think that this is the reason for the limited scalability of IOS.
(I.e. /Link has to poll; this means that if you have 10 users
active, you have 10 users polling your HTTP server; you have to do
polling very often, if you want it to look like instant messaging;
so, as the number of users grow, the amount of work in for the
HTTP server grows, and servers like Apache have to spawn a new
process for each new connection. This can take a small server down
quite quickly. Unless you can afford a server cluster...)
I think that a solution to the problem is to try to be smart and
use both HTTP and a custom protocol. So, you have three class of
users:
1. Users that can receive and do connections on any port.
2. Users that can connect to any port but cannot receive
connections.
3. Users that can only do HTTP requests.
Now, we can provide a good performance to users in class 3 by
using the resources of users from class 1. Once the client knows
in which class it is (either by doing tests or by asking the
user), it can decide how to communicate.
If it is in class 1, it does a connection with the server using
the custom protocol. (One could even try to take advantage of
multicasting if it works for some users...) Also, it asks to the
user if it is ok to open an HTTP port to "help" other users behind
a firewall.
If it is in class 3, it does an HTTP request to the server to know
the list of users that offer the HTTP service. (Or, one could use
HTTP push if it works with the proxy the user is forced to use.)
Then the client can do polling by selecting randomly one of the
users with the HTTP service.
What do you think?
Regards,
Gabriele.
--
Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer
Amigan -- AGI L'Aquila -- REB: http://web.tiscali.it/rebol/index.r