WebSocket .Net Core

Get Started. It's Free
or sign up with your email address
WebSocket .Net Core by Mind Map: WebSocket .Net Core

1. Відкриті питання

1.1. Уточнити деталі у Шведуна!

1.2. Розгорнути середовище розробки

1.3. Питання від Міші

1.3.1. Деталі хостінгу bpmonline .net core

1.3.2. Порт сокета і додатку

1.3.2.1. Співпадають

1.4. Прототип

1.4.1. Клієнт

1.4.2. Логіка

1.5. Задачі

1.5.1. Намалювати схему взаємодії класів WebSocket інфраструктури

1.5.1.1. https://photos.app.goo.gl/hrnJHdgFpqszrgLfA

1.5.2. Окремий мікросервіс для WS

1.5.2.1. Схема розгоргортання онсайт?

1.5.2.1.1. Ніхто не знає

1.5.2.2. Політика партії?

1.5.2.2.1. Карло - за (але вирішує Ніконов)

1.5.2.2.2. Ніконов

1.5.2.3. Задачі

1.5.2.3.1. Реалізація web-сервісу з web-socket server

1.5.2.3.2. Авторизація: web-сервіс має авторизуватися за допомогою Redis та методу бібліотеки, яку розробляють HardCore

1.5.2.3.3. Перевести проект Messaging.Cluster на .net standard (проблема з System.Web.HostingEnvironment.ApplicationID)

1.5.2.3.4. Перевести проект Terrasoft.Redis на .net standard (проблема ServiceStack)

1.5.2.3.5. Bpm'online має на клієнт віддати адресу web-сервісу, а також дозволити цей хост для авторизаційної cookie (або sessionId)

1.5.3. Переведення проекту Messaging.Common на net472; netstandard2.0 + тести

1.5.3.1. Телефонія: відокремити від загальних класів

1.5.3.1.1. Выделена отдельная библиотека с интерфейсами Terrasoft.Messaging.Common.Standard => вся телефония и Framework зависимости остались в старой библиотеке

1.5.4. Клієнт -> Сервер: отримання даних в асинхронному пакетному режимі (ReceiveAsync)

1.5.4.1. Не нужно - если использовать SignalR

1.5.5. Сервер -> Клієнт: передача даних, що перевищує розмір буферу (SendAsync). Також розбивати на окремі пакети чи обмежувати?

1.5.5.1. Спробувати передати повідомлення, що перевищує розмір буферу: на браузер і на окремий клієнт

1.5.5.2. Не нужно - если использовать SignalR

1.5.6. Аутентифікація: отримання cookie та її валідація

1.5.7. SignalR

1.5.7.1. Порівняння з чистим Web-Socket

1.5.7.1.1. На веб-клієнті потрібно підключити додаткову js бібліотеку (97 кб)

1.5.7.1.2. Стороннім клієнтам слід дотримуватись протоколу від Microsoft (хоча й існують клієнти для багатьох мов)

1.5.7.1.3. Абстракція над транспортним рівнем (web-sockets, server sent events, long polling). Бібліотека сама обирає який транспорт використовувати, виходячи із доступних

1.5.7.1.4. Аутентифікація методами asp.net core (не потрібно нічого додатково писати)

1.5.7.1.5. Оперуємо інтерфейсами із методами, що приймають параметри комплексних типів даних, а не byte-буферами (прозора серіалізація)

1.5.7.1.6. Можливість обрати як json-протокол, так і binary-протокол (MessagePack), що дає змогу економити трафік (втрачаючи читабельність)

1.5.7.1.7. Серверний SignalR є частиною ASP.NET Core

1.5.7.2. Реалізувати також під .Net Framework

1.5.7.2.1. Неможливо використовувати один клієнт і для Core і для Framework - різні протоколи

1.5.8. Отримувати екземпляр IWebSocketService через фабрику (зараз статика)

1.5.8.1. Не потрiбно

1.5.9. Перевірка кластерного режиму

1.5.9.1. Не працює, бо треба вирішити проблему Redis під .Net Core

1.5.10. Закриття каналу

1.5.10.1. При зупинці додатку закривати всі канали

1.5.11. Телефонія

1.5.11.1. Гдуля каже, що телефонія першим замовникам не потрібна

1.5.12. Terrasoft.Messaging.SignalR (сервер)

1.5.12.1. Отримання AdminUnitId по UserName. Передати в ініціалізацію MsgChannel

1.5.12.2. Unit-тести

1.5.12.3. Скинути на клієнт клас клієнтського провайдера

1.5.12.4. SysSettings notifier

1.5.13. SignalR client provider