The DATA message (could be REQUEST or REPLY also) is forwarded from another user or sent by the server. The payload or message should be interpreted according to the tag. If the tag is unknown, the message may be discarded.
Syntax 1:
:<sender> DATA <target> <tag> :<message>
:<sender> REQUEST <target> <tag> :<message>
:<sender> REPLY <target> <tag> :<message>
If the DATA, REQUEST or REPLY message is sent to a number of members within a channel, the receiving user will see the channel name and their own nick in the message as follows:
Syntax 2:
:<sender> DATA <channel> <nick> <tag> :<message>
:<sender> REQUEST <channel> <nick> <tag> :<message>
:<sender> REPLY <channel> <nick> <tag> :<message>
Editor's Note | |
---|---|
These are not the original syntaxes listed in the IRCX draft, however, it would seem they made a typographical error in the draft. Originally, the commands (DATA/REQUEST/REPLY) had a colon before them. However, this is technically illegal, and the official Microsoft client (Comic Chat) won't even accept the command with the colon at the beginning. Elsewhere in this document, the DATA/REQUEST/REPLY commands return responses without the colons (except for the examples in this section). Client developers should expect to see either one, however, server developers should send the "legal" version (the version here, and what appears to be the only version supported by Microsoft Exchange Chat Service and Microsoft Comic Chat, which can be assumed to be the official IRCX server/client). Additionally, it does not seem that Microsoft Comic Chat does Syntax 2 properly. It crashes consistantly when it is sent a message using Syntax 2. Because of this, the server should do something similar to the "extended" PRIVMSG/NOTICE commands (or WHISPER). Either drop the channel or drop the nickname (it may make more sense to do one or the other, depending on your view of the situation). This, however, is only a recommendation. The official IRCX draft makes no requirement of this, and you are free to support Syntax 2 as it is in this draft. However, because Microsoft abandoned the effort to make IRCX an IETF standard, it could be assumed that they either ditched Syntax 2 altogether, or supports it differently (by dropping the channel name or the nickname). |
<sender> May be a user or a server.
<target> Channel and/or nick list as defined above.
<tag> Identifying tag.
<message> Payload.
The tag indicates what to do with the message. Tag types may be specified by administrators, client developers, server developers etc.
A tag beginning with SYS can only be from a sysop, sysop manager or the server. A tag beginning with ADM can only be from a sysop manager or the server.
DATA message functionality is different from client-to-client messaging in several respects. First, we encourage groups to define their own tags and data formats for special purposes, for example to indicate details for a user's avatar in graphical chats, or to indicate that an ad banner or image should be downloaded. Second, the DATA message is more appropriate for content that may go to several users, for example all users in a channel. Third, the DATA message may come from the server. Fourth, the SYS and ADM prefixes are specified so that important tags may be reserved for sysops, sysop managers and the server itself, with the server responsible for verifying the sender before forwarding the DATA message.