[REBOL] rebol open messaging system
From: jjmmes::yahoo::es at: 24-Nov-2002 0:32
Is anybody in the list interested in developing an
open messaging system based on Gabrielle's suggestion
?
The idea would be to have a Instant Messaging
environment really geared for development more than
chatting, with lots of technical topics/channels.
One feature that would be very useful is to have the
ability to get all channel content so that there is
not a lot of repetition.
If we build it based on an academic license we can
keep adding improvements and at the same time learn a
lot.
If this is a good idea, I'd volunteer putting together
releases based on the different contributions, once we
have a basic running client.
Regards,
jose
=================================================
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