Get desktop application:
View/edit binary Protocol Buffers messages
This is the methods that needs to be implemented by a gRPC client.
Large file upload: a request with a stream of chunks.
File upload request.
Request ID.
Request authentication credentials.
The topic this upload belongs to.
Uploaded metadata.
File bytes being uploaded.
Response to file upload.
Response ID.
Response code.
Response text.
New upload location.
Large file file download: a response with a stream of chunks.
File download request.
Request ID
Request authentication credentials.
File URI to download.
ETag
Response to file download.
Response ID.
Response code.
Response text.
File location.
File bytes.
Client sends a stream of ClientMsg, server responds with a stream of ServerMsg
Plugin interface.
Account created, updated or deleted
Indexable tags for user discovery
An alteranative user and topic discovery mechanism. A search request issued on a 'fnd' topic. This method is called to generate an alternative result set.
New search query If status == REPLACE, otherwise unset.
Search results.
This plugin method is called by Tinode server for every message received from the clients. The method returns a ServerResp message. ServerResp.status tells Tinode server what to do next. See possible values for ServerResp.status in RespCode below.
Message published or deleted
Subscription created, updated or deleted
Topic created, updated [or deleted -- not supported yet]
Actual access mode
Used in: , , ,
Access mode requested by the user
Access mode granted to the user by the admin
Used in: ,
Authentication level
Used in: , ,
Used in: ,
Invalid value. The name must be globally unique.
User creation message {acc}
Used in:
User being created or updated
The initial authentication scheme the account can use
Shared secret
Authenticate session with the newly created account
Indexable tags for user discovery
User initialization data when creating a new user, otherwise ignored
Credentials for verification.
Authentication token used for resetting a password.
Account state: normal ("ok"), suspended
AuthLevel
Temporary auth params for one-off actions like password reset.
Credentials such as email or phone number
Used in: , , ,
Credential type, i.e. `email` or `tel`.
Value to verify, i.e. `user@example.com` or `+18003287448`
Verification response
Request parameters, such as preferences or country code.
ClientDel delete messages or topic
Used in:
Delete messages by id or range of ids
User ID of the subscription to delete
Credential to delete.
Request to hard-delete messages for all users, if such option is available.
What to delete, either "msg" to delete messages (default) or "topic" to delete the topic or "sub" to delete a subscription to topic.
Used in:
Invalid value. The name must be globally unique.
Used in:
Root user may send messages on behalf of other users.
Query topic state {get}
Used in:
Client handshake
Used in:
Unsubscribe {leave} request message
Used in:
Login {login} message
Used in:
Authentication scheme
Shared secret
Credentials for verification.
Used as request type in: Node.MessageLoop
Used as field type in: ,
Additional message parameters.
ClientNote is a client-generated notification for topic subscribers
Used in:
what is being reported: "recv" - message received, "read" - message read, "kp" - typing notification, "call" - voice/video call
Server-issued message ID being reported
Client's count of unread messages to report back to the server. Used in push notifications on iOS.
Call event.
Arbitrary json payload (used in video calls).
ClientPub is client's request to publish data to topic subscribers {pub}
Used in:
Update topic state {set}
Used in:
Subscription request {sub} message
Used in:
mirrors {set}
mirrors {get}
Used in: , , ,
Topic default access mode
Used in: , ,
Used in:
File description.
Used in: , ,
Used in:
Timestamp in milliseconds since epoch 01/01/1970
Limit search to this user ID
Limit search results to one topic;
Load messages with seq id equal or greater than this
Load messages with seq id lower than this
Maximum number of results to return
Load messages by id or ranges of ids
Used in: ,
Parameters of "desc" request
Parameters of "sub" request
Parameters of "data" request
Used in: ,
Invalid value. The name must be globally unique.
Plugin response codes
Used in: ,
Instruct Tinode server to continue with default processing of the client request.
Drop the request as if the client did not send it
Send the the provided srvmsg response to the client. ServerResp must contain non-zero srvmsg.
Replace client's original request with the provided clmsg request then continue with processing. ServerResp must contain non-zero clmsg.
Used in: , , ,
Credentials
Used in:
Credential type, i.e. `email` or `tel`.
Value to verify, i.e. `user@example.com` or `+18003287448`
Indicator that the credential is validated
{ctrl} message
Used in:
{data} message
Used in: ,
ID of the user who originated the message as {pub}, could be empty if sent by the system
Timestamp when the message was sent.
Timestamp when the message was deleted or 0. Milliseconds since the epoch 01/01/1970
{info} message: server-side copy of ClientNote with From and optional Src added.
Used in:
{meta} message
Used in:
Cumulative message
Used as response type in: Node.MessageLoop
Used as field type in:
DEPRECATED. Will be removed soon. When response is sent to Root, send internal topic name too.
{pres} message
Used in:
Used in:
Invalid value. The name must be globally unique.
Context message
Used in:
SetDesc: C2S in set.what == "desc" and sub.init message
Used in: ,
Used in: ,
Topic metadata, new topic & new subscriptions only
Subscription parameters
Indexable tags
Credential being updated.
Auxiliary data.
SetSub: payload in set.sub request to update current subscription or invite another user, {sub.what} == "sub"
Used in:
User affected by this request. Default (empty): current user
Access mode change, either Given or Want depending on context
Topic description, S2C in Meta message
Used in: ,
17!
P2P only: other user's last online timestamp & user agent
MsgTopicSub: topic subscription details, sent in Meta message
Used in: ,
16!
Uid of the subscribed user
Topic name of this subscription
ID of the last {data} message in a topic
Messages are deleted up to this ID
Other user's last online timestamp & user agent
Dummy placeholder message.
Used as response type in: Plugin.Account, Plugin.Message, Plugin.Subscription, Plugin.Topic
(message has no fields)