aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--protocol.md20
1 files changed, 19 insertions, 1 deletions
diff --git a/protocol.md b/protocol.md
index f3db156..7fc912a 100644
--- a/protocol.md
+++ b/protocol.md
@@ -1,4 +1,4 @@
-# tomsg protocol (version 2)
+# tomsg protocol (version 3)
The underlying transport of the protocol is a plain TCP socket. However,
because private information is communicated, the recommended transport is an
@@ -125,6 +125,20 @@ tomsg server.
- Creates a new room, and enters the room. The id of the room is returned to
the client. Returns an error if the client is not logged in.
+ If successful, all other sessions of the current user get a `_push invite`
+ push message for the new room with the current user (itself) as the
+ inviter.
+
+ Also marks the current session as active.
+ - Returns `name` or `error`.
+- `<tag> leave_room <roomname:word>`
+ - Leaves the room. Returns an error if the client is not logged in, or not in
+ that room.
+
+ If successful, a `_push leave` push message is sent to all remaining room
+ members, as well as all other sessions of the current user. The message
+ contains the room left and the name of the current user.
+
Also marks the current session as active.
- Returns `name` or `error`.
- `<tag> invite <roomname:word> <user:word>`
@@ -216,5 +230,9 @@ are listed below.
- Sent to all sessions of all members of a room (except the session sending
the `invite` command and all sessions of the invited user) in which a new
user entered.
+- `_push leave <roomname:word> <user:word>`
+ - When user X leaves room R, this push message is sent to: 1. all sessions of
+ all remaining users in room R, and 2. all sessions of user X that did were
+ not the one to send the initiating `leave_room` command.
- `_push ping`
- Sent by the server once in a while. Please ignore.