]>
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. | |
65 | The list will be terminated with RPL_ENDOFMONLIST. | |
66 | ||
67 | ||
68 | Numeric replies | |
69 | --------------- | |
70 | ||
71 | 730 - RPL_MONONLINE | |
72 | ------------------- | |
73 | :<server> 730 <nick> :nick!user@host[,nick!user@host]* | |
74 | ||
75 | This numeric is used to indicate to a client that either a nickname has just | |
76 | become online, or that a nickname they have added to their monitor list is | |
77 | online. | |
78 | ||
8aba962d JT |
79 | The server may send "*" instead of the target nick (<nick>). (This makes it |
80 | possible to send the exact same message to all clients monitoring a certain | |
81 | nick.) | |
82 | ||
212380e3 AC |
83 | 731 - RPL_MONOFFLINE |
84 | -------------------- | |
85 | :<server> 731 <nick> :nick[,nick1]* | |
86 | ||
87 | This numeric is used to indicate to a client that either a nickname has just | |
88 | left the irc network, or that a nickname they have added to their monitor | |
89 | list is offline. | |
90 | ||
91 | The argument is a chained list of nicknames that are offline. | |
92 | ||
8aba962d JT |
93 | As with 730 the server may send "*" instead of the target nick. |
94 | ||
212380e3 AC |
95 | 732 - RPL_MONLIST |
96 | ----------------- | |
97 | :<server> 732 <nick> :nick[,nick1]* | |
98 | ||
99 | This numeric is used to indicate to a client the list of nicknames they have | |
100 | in their monitor list. | |
101 | ||
102 | 733 - RPL_ENDOFMONLIST | |
103 | ------------------------ | |
104 | :<server> 733 <nick> :End of MONITOR list | |
105 | ||
106 | This numeric is used to indicate to a client the end of a monitor list. | |
107 | ||
108 | 734 - ERR_MONLISTFULL | |
109 | --------------------- | |
110 | :<server> 734 <nick> <limit> <nicks> :Monitor list is full. | |
111 | ||
112 | This numeric is used to indicate to a client that their monitor list is | |
113 | full, so the command failed. The <limit> parameter is the maximum number of | |
114 | nicknames a client may have in their list, the <nicks> parameter is the list | |
115 | of nicknames, as the client sent them, that cannot be added. | |
116 | ||
117 |