Initial draft hack for typing notification docs
parent
f52385a1dd
commit
2edca3ca7f
@ -0,0 +1,55 @@
|
|||||||
|
Typing Notifications
|
||||||
|
====================
|
||||||
|
|
||||||
|
Client APIs
|
||||||
|
-----------
|
||||||
|
|
||||||
|
To set "I am typing for the next N msec"::
|
||||||
|
PUT .../rooms/:room_id/typing/:user_id
|
||||||
|
Content: { "typing": true, "timeout": N }
|
||||||
|
# timeout is in msec; I suggest no more than 20 or 30 seconds
|
||||||
|
|
||||||
|
This should be re-sent by the client to continue informing the server the user
|
||||||
|
is still typing; I suggest a safety margin of 5 seconds before the expected
|
||||||
|
timeout runs out. Just keep declaring a new timeout, it will replace the old
|
||||||
|
one.
|
||||||
|
|
||||||
|
To set "I am no longer typing"::
|
||||||
|
PUT ../rooms/:room_id/typing/:user_id
|
||||||
|
Content: { "typing": false }
|
||||||
|
|
||||||
|
Client Events
|
||||||
|
-------------
|
||||||
|
|
||||||
|
All room members will receive an event on the event stream::
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "m.typing",
|
||||||
|
"room_id": "!room-id-here:matrix.org",
|
||||||
|
"typing": ["list of", "every user", "id who", "is currently", "typing"]
|
||||||
|
}
|
||||||
|
|
||||||
|
The client must use this list to *REPLACE* its knowledge of every user who is
|
||||||
|
currently typing. The reason for this is that the server DOES NOT remember
|
||||||
|
users who are not currently typing, as that list gets big quickly. The client
|
||||||
|
should mark as not typing, any user ID who is not in that list.
|
||||||
|
|
||||||
|
Server APIs
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Servers will emit EDUs in the following form::
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "m.typing",
|
||||||
|
"content": {
|
||||||
|
"room_id": "!room-id-here:matrix.org",
|
||||||
|
"user_id": "@user-id-here:matrix.org",
|
||||||
|
"typing": true/false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Server EDUs don't (currently) contain timing information; it is up to
|
||||||
|
originating HSes to ensure they eventually send "stop" notifications.
|
||||||
|
|
||||||
|
((This will eventually need addressing, as part of the wider typing/presence
|
||||||
|
timer addition work))
|
Loading…
Reference in New Issue