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