mirror of
https://github.com/matrix-construct/construct
synced 2024-10-30 02:18:58 +01:00
112 lines
4 KiB
Text
112 lines
4 KiB
Text
|
MONITOR - Protocol for notification of when clients become online/offline
|
||
|
Lee Hardy <lee -at- leeh.co.uk>
|
||
|
$Id: monitor.txt 6 2005-09-10 01:02:21Z nenolod $
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Currently, ISON requests by clients use a large amount of bandwidth. It is
|
||
|
expected that it is more efficient for this to be done by the server at the
|
||
|
expense of cpu cycles. The WATCH implementation that was designed to counter
|
||
|
this is (in my opinion) severely flawed. This protocol was designed to
|
||
|
provide a cleaner implementation.
|
||
|
|
||
|
The command used throughout this specification is "MONITOR".
|
||
|
|
||
|
Each use of the MONITOR command takes a special modifier, indicating
|
||
|
the operation being performed. The client MUST NOT attempt to specify
|
||
|
more than one modifier. Only one special modifier may be used per MONITOR
|
||
|
command.
|
||
|
|
||
|
Thus it is impossible to combine additions to the list with removals from
|
||
|
the list -- these MUST be done with two seperate commands.
|
||
|
|
||
|
A client MUST NOT issue the MONITOR command more than once per second.
|
||
|
Any attempts to do so will generate an error.
|
||
|
|
||
|
In commands and numerics where multiple nicknames may occur, the length of
|
||
|
the nickname list is limited only by the buffer size of 512 chars, as
|
||
|
defined in RFC1459.
|
||
|
|
||
|
Support of this specification is indicated by the MONITOR token in
|
||
|
RPL_ISUPPORT (005). This token takes an optional parameter, of the maximum
|
||
|
amount of nicknames a client may have in their monitor list. If no
|
||
|
parameter is specified, there is no limit. A typical token would be:
|
||
|
MONITOR=100
|
||
|
|
||
|
MONITOR + nick[,nick2]*
|
||
|
-----------------------
|
||
|
Adds the given list of nicknames to the list of nicknames being monitored.
|
||
|
|
||
|
If any of the nicknames being added are online, the server will generate
|
||
|
RPL_MONONLINE numerics listing those nicknames that are online.
|
||
|
|
||
|
If any of the nicknames being added are offline, the server will generate
|
||
|
RPL_MONOFFLINE numerics listing those nicknames that are offline.
|
||
|
|
||
|
MONITOR - nick[,nick2]*
|
||
|
-----------------------
|
||
|
Removes the given list of nicknames from the list of nicknames being
|
||
|
monitored. No output will be returned for use of this command.
|
||
|
|
||
|
MONITOR C
|
||
|
---------
|
||
|
Clears the list of nicknames being monitored. No output will be returned
|
||
|
for use of this command.
|
||
|
|
||
|
MONITOR L
|
||
|
---------
|
||
|
Outputs the current list of nicknames being monitored. All output will use
|
||
|
RPL_MONLIST, and the output will be terminated with RPL_ENDOFMONLIST
|
||
|
|
||
|
MONITOR S
|
||
|
---------
|
||
|
Outputs for each nickname in the list being monitored, whether the client is
|
||
|
online or offline. All nicks that are online will be sent using
|
||
|
RPL_MONONLINE, all nicks that are offline will be sent using RPL_MONOFFLINE.
|
||
|
The list will be terminated with RPL_ENDOFMONLIST.
|
||
|
|
||
|
|
||
|
Numeric replies
|
||
|
---------------
|
||
|
|
||
|
730 - RPL_MONONLINE
|
||
|
-------------------
|
||
|
:<server> 730 <nick> :nick!user@host[,nick!user@host]*
|
||
|
|
||
|
This numeric is used to indicate to a client that either a nickname has just
|
||
|
become online, or that a nickname they have added to their monitor list is
|
||
|
online.
|
||
|
|
||
|
731 - RPL_MONOFFLINE
|
||
|
--------------------
|
||
|
:<server> 731 <nick> :nick[,nick1]*
|
||
|
|
||
|
This numeric is used to indicate to a client that either a nickname has just
|
||
|
left the irc network, or that a nickname they have added to their monitor
|
||
|
list is offline.
|
||
|
|
||
|
The argument is a chained list of nicknames that are offline.
|
||
|
|
||
|
732 - RPL_MONLIST
|
||
|
-----------------
|
||
|
:<server> 732 <nick> :nick[,nick1]*
|
||
|
|
||
|
This numeric is used to indicate to a client the list of nicknames they have
|
||
|
in their monitor list.
|
||
|
|
||
|
733 - RPL_ENDOFMONLIST
|
||
|
------------------------
|
||
|
:<server> 733 <nick> :End of MONITOR list
|
||
|
|
||
|
This numeric is used to indicate to a client the end of a monitor list.
|
||
|
|
||
|
734 - ERR_MONLISTFULL
|
||
|
---------------------
|
||
|
:<server> 734 <nick> <limit> <nicks> :Monitor list is full.
|
||
|
|
||
|
This numeric is used to indicate to a client that their monitor list is
|
||
|
full, so the command failed. The <limit> parameter is the maximum number of
|
||
|
nicknames a client may have in their list, the <nicks> parameter is the list
|
||
|
of nicknames, as the client sent them, that cannot be added.
|
||
|
|
||
|
|