Single Interface Multiple Services Architecture -------------------------------- These are used by all connections via port 12345: -------------------------------- ID[,ID]|0 Returns Name of numeric ID or a list of IDs, or a list of everyone when the ID requested is '0'. Kyle2 Mark1 Disconnects. QUIT -------------------------------- module-type[,module-type]|ALL Returns Name, MID (Module ID), and type for modules with matching module-type, or all modules then the module type is 'ALL'. Chat11CHAT EchoUpper12ECHO Disconnects. QUIT -------------------------------- These are used by CLIENT connections via port 12345: -------------------------------- name ModuleID [key] Returns ID, and numeric challenge-key on success. All further messages are sent to the connected module. (If multiple connections on a single NAME are used, the key is required) 310193 Connects to module. OR Returns reason for no connect. Mike14 (IE: NAME 'Mike' already exists, and no module with MID 14 exists.) Disconnects. QUIT -------------------------------- ID key Disconnects connected ID, when ID and challenge-key match. 2 Disconnects specified client. OR Returns reason for no disconnect. 1 (IE: ID '1' does not exist.) Disconnects. QUIT -------------------------------- These are used by MODULE connections via port 12346: -------------------------------- name Module-Type [key] Returns MID, and numeric challenge-key on success. (If multiple connections on a single NAME are used, the key is required) 132648 MODULE is now available for CLIENT connections. OR Returns reason for no connect. EchoUpper (IE: NAME 'EchoUpper' already exists.) Disconnects. QUIT -------------------------------- MID key Disconnects connected MID, when MID and challenge-key match. 12 Disconnects specified client. OR Returns reason for no disconnect. 1 (IE: ID '1' does not exist.) Disconnects. QUIT -------------------------------- A client's connection is known to be to a specific module. Once connected, all a client's message data is sent to that module. SIMSA wraps the data to tell the module who it is from. <_MSG>text data in XML from client The SIMSA receives a wrapped message (Clients must send message wrapped in a <_MSG> tag. MSG and PKT both have a leading '_' to prevent tag name collision in module defined tags.) <_PKT> client's ID <_MSG>text data in XML from client The module sends data out in a Packet wrapper, that SIMSA strips off, and the data is relayed to the client[s]. <_PKT> id[,id]|!id|0 <_MSG>text data in XML to client ( can be a single id or a comma separated list of ids. can also be '0' to send to all connected clients or an id preceded by '!' to send to all clients excluding the specified id.) The message will be sent to the listed clients as: <_MSG>text data in XML to client SIMSA Message Specification