# Запросы сервера (Server Messages)
Этот раздел описывает сообщения, которые сервер отправляет по собственной инициативе, без прямого запроса клиента. Используются для уведомлений о внешних событиях, изменениях состояния и действиях других пользователей. Например:
createGroupChat – создан групповой чат.
addChatParticipant – пользователь добавлен в групповой чат.
sendMessage – новое сообщение в чате.
На каждый запрос сервера клиент должен ответить так:
{
"type": 2,
"id": 123456
}
# Создан личный чат
Сообщение от сервера:
{
"method": "createP2PChat",
"type": 1,
"id": 2,
"payload": {
"chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
"title": "brown@video.example.com",
"chatType": 1,
"lastMessage": {
"chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
"messageId": "d8bdd362-2656-46ff-a1db-8dadd2b76250",
"timestamp": 1746028006345,
"author": {
"id": "brown@video.example.com",
"type": 1
},
"type": 200,
"content": {
"text": "What's up?",
"parseMode": "text"
}
},
"unreadMessages": 1
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
method | string | Да | Команда createP2PChat |
type | uint32 | Да | Тип сообщения (по умолчанию 1 ). Соответствует MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной. Подробнее читайте тут. |
chatId | string | Да | Идентификатор созданного чата |
title | string | Да | TrueConf ID пользователя, который создал чат |
chatType | uint32 | Да | Тип созданного чата. Соответствует ChatTypeEnum |
lastMessage.chatId | string | Да | Идентификатор чата, где находится сообщение |
messageId | string | Да | Идентификатор сообщения. Можно использовать в дальнейшем для изменения, пересылки или удаления сообщения |
timestamp | uint64 | Да | Временная метка отправки сообщения в формате UNIX timestamp с точностью до миллисекунд |
author.id | string | Да | Уникальный идентификатор автора сообщения (TrueConf ID или имя сервера) |
author.type | uint32 | Да | Тип автора сообщения. См. EnvelopeAuthorTypeEnum |
lastMessage.type | uint32 | Да | Тип сообщения, соответствует EnvelopeTypeEnum |
text | string | Нет | Текст сообщения |
parseMode | string | Нет | Режим форматирования (подробнее) |
unreadMessages | uint32 | Да | Количество непрочитанных сообщений в личном чате |
Поле payload.lastMessage.content
имеет разное содержание в зависимости от типа сообщения payload.lastMessage.type
.
Ответ для сервера:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Создан групповой чат
Сообщение от сервера:
{
"method": "createGroupChat",
"type": 1,
"id": 14,
"payload": {
"chatId": "08d5dbda94a9de4b7554e3b4355307f9e97ffdb7",
"title": "Marketing",
"chatType": 2,
"lastMessage": {
"chatId": "08d5dbda94a9de4b7554e3b4355307f9e97ffdb7",
"messageId": "cccea4a7-24b4-4b2c-8c50-67d01bce17bf",
"timestamp": 1746029638147,
"author": {
"id": "user@video.example.com",
"type": 0
},
"type": 110,
"content": {
"userId": "bot@video.example.com",
"role": "user"
}
},
"unreadMessages": 2
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
method | string | Да | Команда createGroupChat |
type | uint32 | Да | Тип сообщения (по умолчанию 1 ). Соответствует MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
chatId | string | Да | Идентификатор созданного чата |
title | string | Да | Название созданного чата |
chatType | uint32 | Да | Тип созданного чата. Соответствует ChatTypeEnum |
lastMessage.chatId | string | Да | Идентификатор чата, где находится сообщение |
messageId | string | Да | Идентификатор сообщения. Можно использовать для изменения, пересылки или удаления |
timestamp | uint64 | Да | Временная метка в формате UNIX timestamp с точностью до миллисекунд |
author.id | string | Да | TrueConf ID автора сообщения или имя сервера |
author.type | uint32 | Да | Тип автора. См. EnvelopeAuthorTypeEnum |
lastMessage.type | uint32 | Да | Тип сообщения. См. EnvelopeTypeEnum |
userId | string | Нет | TrueConf ID пользователя, отправившего сообщение |
role | string | Нет | Роль пользователя в чате (см. подробнее) |
unreadMessages | uint32 | Да | Количество непрочитанных сообщений в групповом чате |
Поле payload.lastMessage.content
имеет разное содержание в зависимости от типа сообщения payload.lastMessage.type
.
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Создан канал
Сообщение от сервера:
{
"method": "createChannel",
"type": 1,
"id": 14,
"payload": {
"chatId": "08d5dbda94a9de4b7554e3b4355307f9e97ffdb7",
"title": "Important Announcements",
"chatType": 6,
"lastMessage": {
"chatId": "08d5dbda94a9de4b7554e3b4355307f9e97ffdb7",
"messageId": "cccea4a7-24b4-4b2c-8c50-67d01bce17bf",
"timestamp": 1746029638147,
"author": {
"id": "user@video.example.com",
"type": 0
},
"type": 110,
"content": {
"userId": "bot@video.example.com",
"role": "user"
}
},
"unreadMessages": 2
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
method | string | Да | Команда createChannel |
type | uint32 | Да | Тип сообщения (по умолчанию 1 ). Соответствует MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
chatId | string | Да | Идентификатор созданного канала |
title | string | Да | Название созданного канала |
chatType | uint32 | Да | Тип созданного канала. Соответствует ChatTypeEnum = 6 |
lastMessage.chatId | string | Да | Идентификатор канала, где находится сообщение |
messageId | string | Да | Идентификатор сообщения. Можно использовать данный идентификатор в дальнейшем, для изменения, пересылки или удаления сообщения |
timestamp | uint64 | Да | Временная метка отправки сообщения в формате UNIX timestamp с точностью до миллисекунд |
author.id | string | Да | Уникальный идентификатор автора сообщения. Это либо TrueConf ID пользователя, либо имя сервера, с которого пришло сообщение. Тип идентификатора зависит от поля type |
author.type | uint32 | Да | Тип автора сообщения. Подробнее см. EnvelopeAuthorTypeEnum |
lastMessage.type | uint32 | Да | Тип сообщения. Позволяет определить тип контента в сообщении. Соответствует EnvelopeTypeEnum |
userId | string | Нет | TrueConf ID пользователя, отправившего сообщение |
role | string | Нет | Роль пользователя в групповом чате (см. подробнее) |
unreadMessages | uint32 | Да | Количество непрочитанных сообщений в канале |
Поле payload.lastMessage.content
имеет разное содержание в зависимости от типа сообщения payload.lastMessage.type
.
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Добавлен участник в чат
Сообщение от сервера:
{
"method": "addChatParticipant",
"type": 1,
"id": 1,
"payload": {
"chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
"userId": "user@video.example.com",
"addedBy": {
"id": "admin@video.example.com",
"type": 1
},
"timestamp": "1735370776"
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
method | string | Да | Команда addChatParticipant |
type | uint32 | Да | Тип сообщения (по умолчанию 1 ). Соответствует MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной. Подробнее читайте тут |
chatId | string | Да | Идентификатор чата, куда был добавлен пользователь |
userId | string | Да | TrueConf ID пользователя, которого добавили в чат |
addedBy.id | string | Да | Уникальный идентификатор пользователя, добавившего нового участника. Это TrueConf ID или имя сервера, в зависимости от addedBy.type |
addedBy.type | uint32 | Да | Тип пользователя, который добавил нового участника. См. EnvelopeAuthorTypeEnum |
timestamp | uint64 | Да | Временная метка добавления участника в чат в формате UNIX timestamp (в миллисекундах) |
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Удален участник чата
Сообщение от сервера:
{
"method": "removeChatParticipant",
"type": 1,
"id": 1,
"payload": {
"chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
"userId": "user@video.example.com",
"removedBy": {
"id": "admin@video.example.com",
"type": 1
},
"timestamp": "1735370778"
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
method | string | Да | Команда removeChatParticipant |
type | uint32 | Да | Тип сообщения (по умолчанию 1 ). Соответствует MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
chatId | string | Да | Идентификатор чата, где был удален пользователь |
userId | string | Да | TrueConf ID пользователя, которого удалили из чата |
removedBy.id | string | Да | Уникальный идентификатор пользователя, удалившего участника из чата. Это либо TrueConf ID, либо имя сервера, с которого пришло сообщение. Тип идентификатора зависит от поля removedBy.type |
removedBy.type | uint32 | Да | Тип пользователя, который удалил участника из чата. Подробнее см. EnvelopeAuthorTypeEnum |
timestamp | uint64 | Да | Временная метка удаления участника из чата в формате UNIX timestamp с точностью до миллисекунд |
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Новое сообщение в чате
Сообщение от сервера:
{
"method": "sendMessage",
"type": 1,
"id": 11,
"payload": {
"chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
"messageId": "d66254de-9d89-4130-8027-c5378f042800",
"timestamp": 1746029007569,
"author": {
"id": "brown@video.example.com",
"type": 1
},
"isEdited": false,
"box": {
"id": 4,
"position": "0"
},
"type": 200,
"content": {
"text": "Текст",
"parseMode": "html"
}
}
}
Уведомление о новом сообщении содержит поля, соответствующие объекту Envelope. Подробное описание этих полей вы найдёте в разделе посвящённом работе с сообщениями.
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Новый файл в чате
В протоколе чата TrueConf событие об отправке файла приходит сразу при создании сообщения, не дожидаясь загрузки файла на сервер. После этого файл какое-то время будет загружаться, после чего станет доступен для скачивания.
Сообщение от сервера:
{
"type": 1,
"id": 7,
"method": "sendMessage",
"payload": {
"chatId": "bea15543d971a83c8ba1f103104791762c6b4b8f",
"messageId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
"timestamp": 1735302531000,
"author": {
"id": "user@video.example.com",
"type": 1
},
"isEdited": false,
"box": {
"id": 10,
"position": ""
},
"type": 2,
"content": {
"name": "someimage.png",
"mimeType": "image/png",
"size": 2156,
"fileId": "e09dbd63a16bd8cd7bddda7193c1c4ff0d2f6de5"
}
}
}
Уведомление о сообщении с файлом содержит поля, соответствующие объектам Envelope и FileMessageContent. Подробное описание этих полей вы найдёте в разделе посвящённом работе с сообщениями.
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Новый опрос в чате
Сообщение от сервера:
{
"method": "sendMessage",
"type": 1,
"id": 11,
"payload": {
"chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
"messageId": "d66254de-9d89-4130-8027-c5378f042800",
"timestamp": 1746029007569,
"author": {
"id": "brown@video.example.com",
"type": 1
},
"isEdited": false,
"box": {
"id": 4,
"position": "0"
},
"type": 204,
"content": {
"url": "<tool_url>?id=...&k=...&mode=popup&call_id=vasya@srv.trueconf.name/1vca3&lang=ru&version=1&app=TrueConf+WebClient&dn=Vasiliy&s=12fee56062786c267cc286045f1fac76",
"appVersion": 1,
"path": "some_survey",
"title": "Meeting survey",
"description": "{{Survey}}",
"buttonText": "{{Go to survey}}",
"secret": "054c1cf18f1e64f4c38b256effedfe18debdcbba",
"alt": "📊 <a href='https://server.url/webtools/survey?id=some_survey&error=autologin_not_supported'>Meeting survey</a>"
}
}
}
Уведомление о сообщении с опросом содержит поля, соответствующие объектам Envelope и. Подробное описание этих полей вы найдёте в разделе посвящённом работе с сообщениями и опросами.
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Сообщение было изменено
Сообщение от сервера:
{
"method": "editMessage",
"type": 1,
"id": 12,
"payload": {
"messageId": "d4d20b4f-e4a4-4abc-8e66-ff2e17f483b7",
"timestamp": 1746029430000,
"content": {
"text": "🤝",
"parseMode": "text"
}
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
method | string | Да | Команда editMessage |
type | uint32 | Да |
Тип сообщения (по умолчанию 1 ). Соответствует
MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
messageId | string | Да | Идентификатор измененного сообщения. Можно использовать данный идентификатор в дальнейшем для копирования, пересылки или удаления сообщения |
timestamp | uint64 | Да | Временная метка изменения сообщения в формате UNIX timestamp с точностью до миллисекунд |
text | string | Да | Текст измененного сообщения |
parseMode | string | Да | Режим форматирования (см. подробнее) |
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
# Сообщение было удалено
Сообщение от сервера:
{
"method": "removeMessage",
"type": 1,
"id": 12,
"payload": {
"chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
"messageId": "d4d20b4f-e4a4-4abc-8e66-ff2e17f483b7",
"removedBy": {
"id": "brown@video.example.com",
"type": 1
}
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
method | string | Да | Команда removeMessage |
type | uint32 | Да |
Тип сообщения (по умолчанию 1 ). Соответствует
MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
chatId | string | Да | Идентификатор чата, где было удалено сообщение |
messageId | string | Да | Идентификатор удаленного сообщения. Можно использовать данный идентификатор в дальнейшем для копирования, пересылки или удаления сообщения |
removedBy.id | string | Да |
Уникальный идентификатор пользователя, удалившего сообщение. Это либо TrueConf ID, либо имя сервера, с которого пришло сообщение.
Тип идентификатора зависит от поля removedBy.type |
removedBy.type | uint32 | Да | Тип пользователя, который удалил сообщение. Подробнее см. EnvelopeAuthorTypeEnum |
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |