Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SignalR? β€ Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ASP.NET SignalR ΠΈ ASP.NET Core SignalR?
HTML-ΠΊΠΎΠ΄
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ: 23 Π°Π²Π³ 2024
- π₯ΠΡΠΎΠΌΠΎΠΊΠΎΠ΄ Π½Π° ΡΠΊΠΈΠ΄ΠΊΡ 15% Π½Π° Π²ΡΠ΅ ΠΊΡΡΡΡ ITVDN- H94BCAB
ΠΠΎΠ»Π½ΡΠΉ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡ: itvdn.com/ru/v...
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SignalR? Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ASP.NET SignalR ΠΈ ASP.NET Core SignalR?
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π£Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SignalR, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² Π²Π΅ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π΅Π΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SignalR? ASP.NET Core SignalR - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΡΡ, Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ, ΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΠΊΡΡΡΠ΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ASP.NET Core SignalR.
ΠΡΠΈΠΌΠ΅Π½ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° C# ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° JavaScript, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
Π’Π°ΠΊΠΆΠ΅ Π² ΠΊΡΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΎΠΏΡΠΎΡΡ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ. ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΡΡΡΠ°, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π±Π°Π·ΠΎΠ²ΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΈ Π½Π°Π²ΡΠΊΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ASP.NET Core SignalR, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Ρ Π² ΡΠ²ΠΎΠΈΡ ΡΡΠ΅Π±Π½ΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Π§Π΅ΠΌΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π½Π° ΡΡΠΎΠΌ ΠΊΡΡΡΠ΅:
ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΌΠ΅ΡΡ ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ASP.NET Core SignalR.
ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ SignalR ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ SignalR.
ΠΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΎΠΏΠΈΡΠ°ΡΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» SignalR.
ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΈ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π² SignalR Core
ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ .NET Core SignalR.
Π£ΠΌΠ΅ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JWT ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SignalR.
Π£ΠΌΠ΅ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ MessagePack, ΠΎΠΏΠΈΡΠ°ΡΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» SignalR.
Π£ΠΌΠ΅ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ (.NET ΠΈ JS).
ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΌΠ΅ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redis.
ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΡ ΠΊΠ°ΠΊ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π½Π° .NET, ΠΈ JS ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅.
ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ WebSocket. Π£ΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WebSocket Π² .NET ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ!
ΠΡΠ»ΠΎ ΠΊΠΎΡΠΎΡΠΊΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎ - ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
Π§ΠΈΡΠ°Π» Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°Ρ Π½ΠΈΠΆΠ΅, ΡΡΠΎ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΈΠ½Π°ΡΠ΅ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ. ΠΡ Π½Π΅ Π·Π½Π°Ρ, ΠΌΠΎΠΆΠ΅Ρ Π΅ΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π΅Π΅, Π½ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ» Π²Π°ΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΡΡΠ°ΠΏ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΡΡΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΡ Π±Ρ ΡΠ°ΠΊ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ° ΠΏΠΎΠ»ΡΠ°ΡΠ° (ΡΡΠΎΠΊ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°) Ρ ΠΌΠ΅Π½Ρ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΠΈ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ - Π² ΡΠΎΠΌ ΠΈ Π±ΡΠ»Π° ΡΠ΅Π»Ρ. Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΠ°ΠΌ :)
ΠΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ! ΠΡΠΎΡΡΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎ.
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡΠΎ Blazor
ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ, Π° Π΅ΡΠ»ΠΈ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎ Π±Ρ ΠΎΡΠ²Π΅Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ΅Π» Π½Π΅ Π²ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π»ΠΎΠ±Π±ΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ»Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ?
ΠΡΠΊΡΡ. ΠΡΠ»ΠΎ ΡΡΠΊΠ°Π²ΠΎ)
ΠΠΎΠΎΠ±ΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠ΅
ΠΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²Ρ, Π°Π²ΡΠΎΡ, Π±ΡΡΠ΅ΡΠ±ΡΠΎΠ΄ Π΅Π΄ΠΈΡΠ΅... ΠΡΠ»ΠΈ ΡΡΠΎΠΊ ΡΠ°ΡΡΠΈΡΠ°Π½ Π½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π·Π½Π°ΠΊΠΎΠΌΡΠΌ asp.core, ΡΠΎ ΠΎΠ½ ΡΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌ dependency injection, Π° Π·Π½Π°ΡΠΈΡ - ΠΈ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ. Hub ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ ΠΎΠ±ΡΡΡΠΊΡ Π½Π°Π΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Clients. Π§Π΅ΠΌ Π»ΡΡΡΠ΅? ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅: ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ Π°Π± ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. Π‘Π°ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ. ΠΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² - ΠΎΡΠΈΠ±ΠΊΠ° Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π’Π°ΠΊ ΠΆΠ΅ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
π₯π₯π₯π₯
Hello, can you tell me to develop a messenger like a telegram, it's better to use SignalR or regular web sockets?
Π‘ΡΠΈΠ² ΠΈ ΠΠ»Π΅ΠΊΡ? Π‘ΡΡ, Π΄Π° Π²Ρ ΠΌΠ°ΠΉΠ½ΠΊΡΠ°ΡΡΠ΅Ρ?
Π‘ΠΎ ΡΠΊΡΠ°ΠΉΡΠ΅Π΄!
ΡΠ΅ ΠΏΠ°ΡΠ°Π½Ρ ΠΎΠΏΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΠ΅Π²ΠΎΠ»ΡΡΠΈΡ, ΠΎΠΏΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΡΡΠΈΡΡ?
ΡΡΠΆΠ΅Π»Π° ΠΈ Π½Π΅ΠΊΠ°Π·ΠΈΡΡΠ° ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°
ΠΡΠ»ΠΈ Π½Π΅ ΠΎΡΠΈΠ±Π°ΡΡΡ, Elixir/Phoenix ΠΆΠ΅ ΡΠΆΠ΅ ΠΏΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ΠΌΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΡΠΈ ΡΠ΅ΠΌ ΡΡΡ ΡΠ·ΡΠΊ?