Signalr: НС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния с Microsoft.AspNet.SignalR.Client Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ .Net Core 2.0

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 30 Π°ΠΏΡ€. 2018  Β·  9ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: SignalR/SignalR

ΠŸΡ€ΠΈΠ²Π΅Ρ‚,

Π£ мСня Π΅ΡΡ‚ΡŒ сСрвСр SingalR с .Net Framework 4.5.2 ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ SignalR (консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) с .Net Framework 4.5.2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ:

Π‘Π΅Ρ€Π²Π΅Ρ€:
image

ΠšΠ»ΠΈΠ΅Π½Ρ‚:
image

ВсС ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π΅Ρ‰Π΅ нСсколько мСсяцСв Π½Π°Π·Π°Π΄.

Но Π² настоящСС врСмя Ρƒ мСня Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ SignalR Π² консольном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ .Net Core 2.0, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Ρƒ ΠΆΠ΅ Π²Π΅Ρ€ΡΠΈΡŽ Microsoft.AspNet.SignalR.Client. Он ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСния ΠΎΡ‚ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ‚ΠΎΡ€Π°. Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с этим nuget Π² .Net Core?

Π­Ρ‚ΠΎ ΠΊΠΎΠ΄:

        var hubProxy = hubConnection.CreateHubProxy("MyHub");

        hubProxy.On("created", data =>
        {
            Console.WriteLine("Incoming Created  data: {0}", data);
        });

        hubProxy.On("deleted", data =>
        {
            Console.WriteLine("Incoming Deleted data: {0}", data);
        });

        hubConnection.Start().ContinueWith(x =>
        {
            hubProxy.Invoke("subscribe", "firstFeature", "secontFeature");
        }).Wait();

        Console.WriteLine("Connected to {0}", hubConnection.Url.ToString());

Бпасибо!

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚!

Π― ΡƒΠΆΠ΅ сдСлал это: https://github.com/aspnet/SignalR/issues/2156 ΠΈ ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ мСня сюда ...

ВсС 9 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @georginacm

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ вопрос здСсь https://github.com/aspnet/SignalR, этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ связан с ядром сСти signalR.

Π‘ Π£Π²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚!

Π― ΡƒΠΆΠ΅ сдСлал это: https://github.com/aspnet/SignalR/issues/2156 ΠΈ ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ мСня сюда ...

Π’Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎ. Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ подняли .NET Core, происходит Π»ΠΈ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ SignalR ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ· прилоТСния .NET Core? Π’.Π΅. Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ этот ΠΆΠ΅ ΠΊΠΎΠ΄ Π² .NET Framework?

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ воспроизводит ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ?

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π½Π΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎΡ‚ вас. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ссли смоТСм ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ снова ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ сцСнарий ΠΈ «вСроятно» Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ сбой.

net461 сСрвСр ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Microsoft.AspNet.SignalR "Version =" 2.2.3 "
ΠΊΠ»ΠΈΠ΅Π½Ρ‚ net461 ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Microsoft.AspNet.SignalR.Client "Version =" 2.2.3 "

всС Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, связано с Π²Π΅Π±-сокСтами, Π΄Π΅Π»Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ( call it subscribe or join group ), ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅.

Π½ΠΎ Ссли я измСню клиСнтский ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с
<TargetFramework>net461</TargetFramework>
ΠΊ
<TargetFramework>netcoreapp2.0</TargetFramework>

Π― ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SSE, ΠΈ Π² основном я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ InvalidOperation ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ invoke . Иногда invoke ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ, Π½ΠΎ сцСнарий успСха нСясСн.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, описанноС Π² нашСй Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ сюда? (ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π΅ просто ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ вставляйтС ΠΈΡ…, поТалуйста, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΆΡƒΡ€Π½Π°Π»Ρ‹ большиС, ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΡ… Π² Ρ‚Π΅Π»Π΅ коммСнтария ΠΎΡ‡Π΅Π½ΡŒ затрудняСт просмотр).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† прилоТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ воспроизводится ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.

ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρƒ мСня ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ установлСно с ΠΎΠ΄Π½ΠΈΠΌ сСрвСром, Π½ΠΎ invoke шСл Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСрвСр. РассматриваСмый LB Π±Ρ‹Π» F5 big-ip, ΠΎΠ½ нуТдался Π² настройкС сохраняСмости ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ установлСно с ΠΎΠ΄Π½ΠΈΠΌ сСрвСром, Π½ΠΎ Π²Ρ‹Π·ΠΎΠ² выполнялся Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ сСрвСрС.

Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π² ASP.NET SignalR, Ссли Ρƒ вас зарСгистрирована ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Π°. Π‘ΠΌ. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ здСсь: https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-in-signalr

Π£ мСня Π½Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹, ΠΈ я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ Π΅Π΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π‘Π΅Ρ€Π²Π΅Ρ€ Π±Ρ‹Π» снабТСн источником событий с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. члСнство Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Π±Ρ‹Π»ΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ fault ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» исправлСн ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ сСрвСр.

Π― ΠΏΠΎΡ‡Ρ‚ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ это Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ. ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ядра dotnet, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ framework signalr.client, Ρƒ мСня Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ с 3 сСрвСрами послС измСнСния устойчивости балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ