Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[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: