Если вы используете встроенный бэкенд, вам необходимо определить токен с помощью свойства token после успешной авторизации пользователя.
Chat ожидает бэкенд сервер для загрузки чатов, пользователей и сообщений. Передать ссылку на сервер можно с помощью параметра url:
webix.ui({
view: "chat",
url:"http://localhost:3200/"
});
Chat использует WebSocket протокол.
Вы можете скачать готовый бэкенд для Chat здесь. Обратите внимание, что чат-боты доступны при использовании нашего бэкенда. Для более удобной работы с чат-ботами используйте свой собственный API ключ OpenAI .
Если у вас нет сервера, вы можете переопределить методы бэкенд сервиса и предоставлять клиентские данные в виде промиса.
Сервис Backend это серверная модель, у которой есть методы для запросов на сервер. Они вызываются сервисом Operations при необходимости загрузки или сохранения данных.
Ниже вы найдёте полный список методов.
Чтобы менять запросы, получать и обрабатывать ответные данные вы можете:
class MyBackend extends chat.services.Backend {
// новые методы
}
webix.ui({
view: "chat",
url:"http://localhost:3200/",
override: new Map([[chat.services.Backend, MyBackend]]),
});
Если вы хотите передать в Chat клиентские данные, вам необходимо вернуть промис внутри следующих методов:
class MyBackend extends chat.services.Backend {
// вы можете перехватывать и кастомизировать серверные запросы
messages(chatId) {
return Promise.resolve([
{
user_id: 1,
text: "[Ваше сообщение] Работа в режиме offline",
}
]);
}
// other methods
}
Related sample: Chat: Local Data
Помните, что операции по созданию чата/сообщения, редактированию или удалению осуществляются от лица текущего пользователя.
В этой секции вы найдёте детальное описание следующих методов:
Вызывается при инициализации виджета.
Returns: промис с массивом пользователей:
[
{
avatar: "remote/avatars/1.jpg",
email: "alex@brown.com",
id: 1,
name: "Alex Brown",
status: 2
},
{ .. }
]
Метод загружает массив чатов.
Returns: промис с массивом чатов:
[
{
avatar: "remote/avatars/photo.jpg",
date: new Date(),
direct_id: 17,
id: 52,
message: "Выпьем чаю с малиновым вареньем?",
name: "PM: Jean Catwright",
unread_count: 0,
users: [3, 17]
},
{ .. }
]
Метод вызывается при создании нового приватного чата.
Parameters:
Returns: промис с объектом данных созданного чата:
{
avatar: "remote/avatars/pm.jpg",
date: new Date(),
direct_id: 17,
id: 52,
message: "Ну и гадость эта ваша заливная рыба!"
name: "Дом на Новокузнецкой",
unread_count: 1,
users: [3, 17]
}
Метод вызывается при входе пользователя в чат.
Parameters:
Returns: промис с массивом сообщений:
[
{
chat_id: 6,
date: new Date(),
id: 19,
text: "И всё-таки она вертится!",
user_id: 2
}
]
Метод вызывается при создании нового сообщения.
Parameters:
Returns: объект сообщения:
{
chat_id: 31,
date: new Date(),
id: 75,
text: "Глаголом жги сердца людей!",
user_id: 3
}
Метод вызывается при удалении указанного сообщения.
Parameters:
Returns: объект сообщения:
{
chat_id: 31,
date: new Date(),
id: 71,
text: "",
user_id: 0
}
Метод вызывается при обновлении указанного сообщения.
Parameters:
Returns: объект сообщения:
{
chat_id: 31,
date: new Date(),
id: 76,
text: "А судьи кто?",
user_id: 3
}
Инициирует звонок указанному пользователю. Если это групповой звонок, userId должен быть равен 0.
Parameters
Returns: объект с данными о звонке.
{
devices: [30, 0],
id: 778,
start: null,
status: 1,
users: [1, 0],
initiator: 6, // the id of the call initiator
group: true
}
Вызывается, когда звонок принят или отклонён.
Parameters:
Ниже представлен список всевозможных кодов и их текстовые интерпретации:
Returns: объект с данными обновления.
{
data: 902
error: ""
id: "21"
}
Вызывается во время звонка для изменения статуса пользователя. Используется для вызовов LiveKit и P2P.
Parameters:
Ниже приведен список всех кодов состояния и их текстовые интерпретации:
Returns: промис.
Получает токен для подключения к звонку при использовании службы LiveKit. Используется только для LiveKit, даже если это звонок один на один.
Parameters:
Returns: объект, содержащий токен.
{
token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9EzMzciLCJ1c2VybmFtZSI6ImJpem9uZSIsImlhd"
}
Отправляет сигнал на сервер в случае определённых операций. Возможные операции перечислены в параметре payload. Используется только для звонков один на один с использованием P2P соединения.
Parameters:
// объект payload
{
audio: true,
video: false,
}
Returns: объект с данными сигнала.
{
data: null,
error: "",
id: "26"
}
Метод сбрасывает счётчик непрочитанных сообщений в указанном чате.
Parameters:
Метод не возвращает никаких данных.
Метод вызывается при создании группового чата.
Parameters:
Returns: промис с объектом чата:
{
avatar: "remote/avatars/picture.jpg",
date: new Date(),
direct_id: 0,
id: 61,
message: "",
name: "Hikikomori",
unread_count: 0,
users: [4, 5, 3, 1, 87]
}
Метод вызывается при обновлении указанного чата.
Parameters:
Returns: промис с объектом чата:
{
avatar: "remote/avatars/another_picture.jpg",
date: new Date(),
direct_id: 0,
id: 61,
message: "",
name: "Новый чат",
unread_count: 0,
users: [4, 5, 3, 1, 87]
}
Метод вызывается, когда пользователь покидает чат.
Parameters:
Returns: null, если пользователь успешно покинул чат.
Метод вызывается, когда текущий пользователь добавляет/удаляет другого пользователя
Parameters:
Returns: промис с объектом чата:
{
avatar: "remote/avatars/another_picture.jpg",
date: new Date(),
direct_id: 0,
id: 61,
message: "Огласите весь список, пожалуйста",
name: "Подработка",
unread_count: 0,
users: [4, 5, 3, 1, 87]
}
Метод возвращает URL для загрузки аватаров чатов.
Returns: url строку для загрузки.
this.app.config.url + "/chat/0/avatar";
Is called when user sends a file.
Parameters:
Returns: url string for uploading.
this.app.config.url + "/chat/3/files";
The uploaded file is added to FormData as the upload
property.
Is called when user records a voice message.
Parameters:
Returns: url string for uploading.
this.app.config.url + `/chat/${id}/voice`;
Наверх