Mirror – це рішення для синхронізації даних в системі з архітектурою "клієнт-сервер", де один сервер взаємодіє з великою кількістю клієнтів.
Сервіс використовує технологію WebSockets, що забезпечує постійне з'єднання між сервером і клієнтами. Це дозволяє миттєво передавати оновлення стану об'єктів і забезпечувати їх актуальність на всіх підключених пристроях.
Основні функції сервісу Mirror:
- Реальний час: Дозволяє миттєво передавати зміни стану об'єктів від сервера до всіх підключених клієнтів.
- Синхронізація об'єктів: Забезпечує актуальний стан об'єктів у всій системі, що важливо для додатків, де багато користувачів працюють з одними і тими ж даними.
- Масштабованість: Підтримує велику кількість одночасних з'єднань з клієнтами, що дозволяє використовувати сервіс в великих системах з великою кількістю користувачів.
- Гнучкість: Можливість інтеграції з різними типами клієнтських додатків, включаючи веб-додатки, мобільні додатки, ігрові платформи тощо.
- Безперервність: Забезпечує надійне з'єднання і відновлення синхронізації в разі тимчасових втрат зв'язку.
Інструкції по налаштуванню і роботі з mirror тут:
Prozorro.Sale Procedure Mirror
- Quickstart
- Troubleshooting
- Use cases
- Message types
- WebSocket Close Codes description
- Mirror clients implementations:
- python (latest and most supported)
- typescript
- rust
- golang
- Main mirror lib - here you may find common logic for all
Connection
WS handler - /api/mirror/procedures
Використання сервісу Mirror:
- Серверна частина: Сервер WebSocket приймає з'єднання від клієнтів, зберігає стан документа і транслює всі зміни всім клієнтам.
- Клієнтська частина: Клієнт підключається до сервера, отримує початковий стан документа і оновлює свій інтерфейс на основі отриманих змін. Якщо клієнт вносить зміни, то сервер автоматично розсилає всім іншим підключеним клієнтам.
Інструкція для локального налаштування тут. За допомогою цієї інструкції і використання IDE можна встановити підключення і бачити в консолі IDE всі зміни, які відбуваються з обʼєктами Процедур, обирати потрібні атрибути та будувати подальшу логіку.
На наведеному нижче прикладі в консоль виведено обрані поля, з яких можна зрозуміти, що у вказаній на скріні процедурі відбулися зміни
В Prozorro.Sale для сервісів реалізовано окремі mirrors:
- Procedure - Procedure-mirror
- Registry - Registry-mirror
- Jobber - Jobber-mirror
Для кожного необхідно встановлювати окреме зʼєднання.
Для налаштування зʼєдання запити вказані в Swagger
Авторизаційний токен можна отримати позасистемним запитом до представників Prozorro.Sale, за умови виконання всіх вимог.