Search code examples
c#stored-procedures.net-coresignalr

How to use .net core 3.1 SignalR uses for stored procedure


I want to use SignalR for stored procedure. I want to do run live stored procedure.

The page needs to be refreshed. But I don't know where to run my stored procedure. I will be glad if you help. This is important for me.


Solution

  • Mine is SignalR using EFCore. You just can run stored procedure in TestSignalR() function.

    Startup.cs

    Add services.AddSignalR() and app.UseSignalR().

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSignalR();
    }
    
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseSignalR(routes => 
        {
            routes.MapHub<YourSignalHub>("/yoursignalhub");
        });
    }
    

    Create new class for hub. YourSignalHub.cs

    public class YourSignalHub : Hub
    {
        public async Task SendWhatever()
        {
            await Clients.All.SendAsync("GetSomething");
        }
    }
    

    YourPage.cshtml

    <a id="btnSend">Send</a>
    
    <span id="spanLiveMessage"></span>
    
    <script>
        var connection = new signalR.HubConnectionBuilder().withUrl("/yoursignalhub").build();
    
        connection.on("GetSomething", function () {
            $.post('@Url.Action("TestSignalR", "Home")', null, function (e) {
                $("#spanLiveMessage").text("test");
                // or your code
            });
        });
    
        $("#btnSend").click(function () {
            connection.invoke("SendWhatever").catch(function (err) {
                return console.error(err.toString());
            });
        });
    </script>
    

    HomeController.cs

    [HttpPost]
    public IActionResult TestSignalR()
    {
        // your code to execute stored procedure here
    }