]>
Commit | Line | Data |
---|---|---|
212380e3 AC |
1 | MONITOR - Protocol for notification of when clients become online/offline |
2 | Lee Hardy <lee -at- leeh.co.uk> | |
8aba962d | 3 | $Id: monitor.txt 3520 2007-06-30 22:15:35Z jilles $ |
212380e3 AC |
4 | ------------------------------------------------------------------------- |
5 | ||
6 | Currently, ISON requests by clients use a large amount of bandwidth. It is | |
7 | expected that it is more efficient for this to be done by the server at the | |
8 | expense of cpu cycles. The WATCH implementation that was designed to counter | |
9 | this is (in my opinion) severely flawed. This protocol was designed to | |
10 | provide a cleaner implementation. | |
11 | ||
12 | The command used throughout this specification is "MONITOR". | |
13 | ||
14 | Each use of the MONITOR command takes a special modifier, indicating | |
15 | the operation being performed. The client MUST NOT attempt to specify | |
16 | more than one modifier. Only one special modifier may be used per MONITOR | |
17 | command. | |
18 | ||
19 | Thus it is impossible to combine additions to the list with removals from | |
20 | the list -- these MUST be done with two seperate commands. | |
21 | ||
22 | A client MUST NOT issue the MONITOR command more than once per second. | |
23 | Any attempts to do so will generate an error. | |
24 | ||
25 | In commands and numerics where multiple nicknames may occur, the length of | |
26 | the nickname list is limited only by the buffer size of 512 chars, as | |
27 | defined in RFC1459. | |
28 | ||
29 | Support of this specification is indicated by the MONITOR token in | |
30 | RPL_ISUPPORT (005). This token takes an optional parameter, of the maximum | |
31 | amount of nicknames a client may have in their monitor list. If no | |
32 | parameter is specified, there is no limit. A typical token would be: | |
33 | MONITOR=100 | |
34 | ||
35 | MONITOR + nick[,nick2]* | |
36 | ----------------------- | |
37 | Adds the given list of nicknames to the list of nicknames being monitored. | |
38 | ||
39 | If any of the nicknames being added are online, the server will generate | |
40 | RPL_MONONLINE numerics listing those nicknames that are online. | |
41 | ||
42 | If any of the nicknames being added are offline, the server will generate | |
43 | RPL_MONOFFLINE numerics listing those nicknames that are offline. | |
44 | ||
45 | MONITOR - nick[,nick2]* | |
46 | ----------------------- | |
47 | Removes the given list of nicknames from the list of nicknames being | |
48 | monitored. No output will be returned for use of this command. | |
49 | ||
50 | MONITOR C | |
51 | --------- | |
52 | Clears the list of nicknames being monitored. No output will be returned | |
53 | for use of this command. | |
54 | ||
55 | MONITOR L | |
56 | --------- | |
57 | Outputs the current list of nicknames being monitored. All output will use | |
58 | RPL_MONLIST, and the output will be terminated with RPL_ENDOFMONLIST | |
59 | ||
60 | MONITOR S | |
61 | --------- | |
62 | Outputs for each nickname in the list being monitored, whether the client is | |
63 | online or offline. All nicks that are online will be sent using | |
64 | RPL_MONONLINE, all nicks that are offline will be sent using RPL_MONOFFLINE. | |
212380e3 AC |
65 | |
66 | ||
67 | Numeric replies | |
68 | --------------- | |
69 | ||
70 | 730 - RPL_MONONLINE | |
71 | ------------------- | |
72 | :<server> 730 <nick> :nick!user@host[,nick!user@host]* | |
73 | ||
74 | This numeric is used to indicate to a client that either a nickname has just | |
75 | become online, or that a nickname they have added to their monitor list is | |
76 | online. | |
77 | ||
8aba962d JT |
78 | The server may send "*" instead of the target nick (<nick>). (This makes it |
79 | possible to send the exact same message to all clients monitoring a certain | |
80 | nick.) | |
81 | ||
212380e3 AC |
82 | 731 - RPL_MONOFFLINE |
83 | -------------------- | |
84 | :<server> 731 <nick> :nick[,nick1]* | |
85 | ||
86 | This numeric is used to indicate to a client that either a nickname has just | |
87 | left the irc network, or that a nickname they have added to their monitor | |
88 | list is offline. | |
89 | ||
90 | The argument is a chained list of nicknames that are offline. | |
91 | ||
8aba962d JT |
92 | As with 730 the server may send "*" instead of the target nick. |
93 | ||
212380e3 AC |
94 | 732 - RPL_MONLIST |
95 | ----------------- | |
96 | :<server> 732 <nick> :nick[,nick1]* | |
97 | ||
98 | This numeric is used to indicate to a client the list of nicknames they have | |
99 | in their monitor list. | |
100 | ||
101 | 733 - RPL_ENDOFMONLIST | |
102 | ------------------------ | |
103 | :<server> 733 <nick> :End of MONITOR list | |
104 | ||
105 | This numeric is used to indicate to a client the end of a monitor list. | |
106 | ||
107 | 734 - ERR_MONLISTFULL | |
108 | --------------------- | |
109 | :<server> 734 <nick> <limit> <nicks> :Monitor list is full. | |
110 | ||
111 | This numeric is used to indicate to a client that their monitor list is | |
112 | full, so the command failed. The <limit> parameter is the maximum number of | |
113 | nicknames a client may have in their list, the <nicks> parameter is the list | |
114 | of nicknames, as the client sent them, that cannot be added. | |
115 | ||
116 |