--- /dev/null
+libCxClient - Citadel/UX Extensible Client API
+Copyright (c) 2000, Flaming Sword Productions
+Copyright (c) 2001, The Citadel/UX Consortium
+All Rights Reserved
+
+http://www.shadowcom.net/Software/libCxClient/
+================================================================================
+
+Miscellaneous Notes
+-------------------
+These are some notes which were involved in the development of the asynchronous
+(ASYN) protocol on Citadel/UX. As I recall, these statements were made by
+Art J. Cancro, Master of Citadel/UX. It all makes sense to me, though! :)
+
+Ok, I'm making a decision. Here is the protocol.
+
+ At any time between commands, or between the time a client enters a command
+and the reply from that command is generated, the server MAY spit out a
+900 series message. This is an asynchronous message and the client MUST
+process it immediately.
+
+ A 900 series message will always be followed by a 100, 200, 300, 400, 500,
+600, or 700 series message which carries the data of the asynchronous
+message.
+
+ I like most of dT's codes, and we'll probably go with something like that.
+I think the actual data of the message should be in the second line rather
+than in the 900 message, though. For example, if 901 means "express message
+arriving" then...
+
+
+901 xmsg follows:
+100 0|979362858|0|IGnatius T Foobar|uncnsrd
+This is the text,
+ of the message that is being received,
+ and it is really cool.
+>000
+
+
+ The benefit of this, in the example above, is that the output is exactly
+the same as the output of the GEXP command. Opportunities for code sharing
+abound.
+
+
+ If the client had already sent a command, and it got the 901, it would have
+to handle the 901 and its data transfer first, putting it in a queue if
+necessary, and then receive the output of the command it sent (unless it gets
+another 900 first, in which case it keeps running the appropriate handlers
+until it gets something other than a 900).
+
+
+ After thinking about it all day, this is the way I'd like to go unless dT
+has a problem with it.
+
+================================================================================
+$Id$