Avi Kivity wrote:
I disagree, I think requiring multiple sessions for controlling a
single
application is clumsy. I can't think of one protocol which uses it. I
don't think IMAP requires multiple sessions (and I don't think commands
from one session can affect the other, except through the mail store).
I agree, multiple sessions is silly. IMAP uses multiple sessions
because the session is stateful, and only one mailbox can be selected,
or to do multiple search operations. IMAP servers hate this btw, the
number of users per server for IMAP is something like 10x less dense
than POP (or at least was years ago when I actually worked on POP and IMAP).
>>> What's the established practice? Do you know of any
protocol that
>>> is line based that does notifications like this?
I worked on an appliance type server product for a while that had
something similar to a monitor control port for issuing all general
commands to the machine. The protocol was tagged, line oriented
commands, and untagged (*) responses for asynchronous notifications.
Bulk data transfers were a bit more complex than they needed to be, as
the protocol had a base64 type encoding which required the size to be
specified in the transfer command (thus not permitting streaming), but
other than that it worked great.
ANSI color is also an option to encode and highlight async notices.
>>
>> I guess most MUDs?
>
> I've never used a MUD before, I think that qualifies as before my time
> :-)
Well I haven't either. Maybe time to start.
What? Why have you guys not been using MUDs? I did some development
work (obviously not for pay) on a Circle based MUD implementation for a
while. Here's an example of mud protocol, showing the prompt... it
works over just telnet and is line based with async notifications.. any
time a notification comes, it reprints a blank prompt; the client line
buffers the input and a better client than telnet would show your entire
line.
It is highly desirable if you can control and monitor everything from a
single telnet session.
To share this experience,
telnet
hrmud.com 4000
...
| 24H 100M 82V > kill fido
You tickle the beastly fido as you pierce him.
| 24H 100M 82V >
The beastly fido tries to bite you but bites his tongue instead!
You tickle the beastly fido as you pierce him.
The beastly fido is incapacitated and will slowly die, if not aided.
| 24H 100M 82V >
You tickle the beastly fido as you pierce him.
The beastly fido is mortally wounded, and will die soon, if not aided.
| 24H 100M 82V >
You pierce the beastly fido's heart, you heartbreaker you...
The beastly fido is dead!
You receive 8 experience points.
Your blood freezes as you hear the beastly fido's death cry.
| 24H 100M 82V >
The green gelatinous blob has arrived.
The janitor picks up some trash.
| 24H 100M 82V > sacrifice corpse
You sacrifice the corpse of the beastly fido.