Signalr: рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ Microsoft.AspNet.SignalR.Client рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдирд╛ред рдиреЗрдЯ рдХреЛрд░ 2.0

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: SignalR/SignalR

рдирдорд╕реНрддреЗ,

рдореЗрд░реЗ рдкрд╛рд╕ .Net Framework 4.5.2 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд┐рдВрдЧрд▓рдЖрд░ рд╕рд░реНрд╡рд░ рд╣реИ, рдФрд░ рдПрдХ рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХреНрд▓рд╛рдЗрдВрдЯ (рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди) .Net Framework 4.5.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:

рд╕рд░реНрд╡рд░:
image

рдЧреНрд░рд╛рд╣рдХ:
image

рд╡реЗ рд╕рднреА рдорд╣реАрдиреЛрдВ рдкрд╣рд▓реЗ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ Microsoft.AspNet.SignalR.Client рдХреЗ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ .Net Core 2.0 рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдФрд░ рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИред рдпрд╣ рдареАрдХ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдм рдХрдиреЗрдХреНрд╢рди рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдиреЗрдЯ рдХреЛрд░ рдореЗрдВ рдЗрд╕ рдирдЧреЗрдЯ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдпрд╣ рдХреЛрдб рд╣реИ:

        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 рдпрд╣ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдиреЗрдЯ рдХреЛрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рд╕рд╛рджрд░ред

рдирдорд╕реНрддреЗ!

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ: https://github.com/aspnet/SignalR/issues/2156 рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ ...

рдЖрдк рд╕рд╣реА рд░реЗрдкреЛ рдореЗрдВ рд╣реИрдВред рддреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪреВрдВрдХрд┐ рдЖрдк .NET рдХреЛрд░ рд▓рд╛рдП рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ .NET рдХреЛрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдпрд╛рдиреА рд╡рд╣реА рдХреЛрдб .NET Framework рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ?

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЖрдкрд╕реЗ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИред рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╡рд╣ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдЬрд┐рд╕рдХреА рд╣рдо рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рддреЛ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд▓рдЧрднрдЧ рд╕рдЯреАрдХ рдкрд░рд┐рджреГрд╢реНрдп рдФрд░ "рд╢рд╛рдпрдж" рд╡рд╣реА рд╡рд┐рдлрд▓рддрд╛ рдХрд░рддрд╛ рд╣реВрдВред

net461 рд╕рд░реНрд╡рд░ Microsoft.AspNet.SignalR рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ рд╕рдВрд╕реНрдХрд░рдг = "2.2.3"
net461 рдХреНрд▓рд╛рдЗрдВрдЯ Microsoft.AspNet.SignalR.Client рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ" рд╕рдВрд╕реНрдХрд░рдг = "2.2.3"

рд╕рдм рдмрдврд╝рд┐рдпрд╛ рд╣реИ, рд╡реЗрдмрд╕реЛрдХреЗрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рдПрдХ рдЖрд╣реНрд╡рд╛рди рдХрд░рддрд╛ рд╣реИ ( call it subscribe or join group ), рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реЗ рдмрджрд▓рддрд╛ рд╣реВрдВ
<TargetFramework>net461</TargetFramework>
рдкреНрд░рддрд┐
<TargetFramework>netcoreapp2.0</TargetFramework>

рдореИрдВ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрд╕рдПрд╕рдИ рдХреЗ рд╕рд╛рде, рдФрд░ рдЬрдм рдореБрдЭреЗ invoke рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдорд╛рдиреНрдпрдСрдкрд░реЗрд╢рди рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА invoke рд╕рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рд▓реЙрдЧ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? (рдХреГрдкрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рди рдХрд░реЗрдВ, рдХреГрдкрдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреА рдкрд░ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд░реЗрдВ, рд▓реЙрдЧ рдмрдбрд╝реЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯрд┐рдкреНрдкрдгреА рдмреЙрдбреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред

рд╕рд╛рде рд╣реА, рдпрджрд┐ рдЖрдк рдПрдХ рдирдореВрдирд╛ рдЖрд╡реЗрджрди рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕рдорд╕реНрдпрд╛ рдереАред рдХрдиреЗрдХреНрд╢рди рдПрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрд╣реНрд╡рд╛рди рдПрдХ рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдкреНрд░рд╢реНрди рдореЗрдВ LB рдПрдХ F5 рдмрдбрд╝рд╛-рдЖрдИрдкреА рдерд╛, рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреГрдврд╝рддрд╛ рд╕реЗрдЯрдЕрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

рдХрдиреЗрдХреНрд╢рди рдПрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрд╣реНрд╡рд╛рди рдПрдХ рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛ рд░рд╣рд╛ рдерд╛

рдпрд╣ ASP.NET SignalR рдореЗрдВ рддрдм рддрдХ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреИрдХрдкреНрд▓реЗрди рдкрдВрдЬреАрдХреГрдд рд╣реИред рд╕реНрдХреЗрд▓-рдЖрдЙрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ: https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-in-signalr

рдореЗрд░реЗ рдкрд╛рд╕ рдмреИрдХрдкреНрд▓реЗрди рдирд╣реАрдВ рд╣реИ, рдФрд░ рди рд╣реА рдореБрдЭреЗ рдПрдХ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреЛ рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХреЗ рдИрд╡реЗрдВрдЯ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рдереАред рд╕рдореВрд╣ рд╕рджрд╕реНрдпрддрд╛ рдХреБрдВрдЬреА fault рдереА рдЬрд┐рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд╛рдХрд░ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рд┐рдЧреНрдирд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рджреГрдврд╝рддрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж 3 рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

tanaka-takayoshi picture tanaka-takayoshi  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yowl picture yowl  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Shahrooze picture Shahrooze  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SkyWaterXXS picture SkyWaterXXS  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

markrendle picture markrendle  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ