SignalR - Broadcasting over a Hub in another Project from outside of a Hub

后端 未结 1 444
耶瑟儿~
耶瑟儿~ 2020-12-09 20:55

I have two projects in my solution:

Project 1: \"SignalRChat\" (MVC) - Works fine
Project 2: \"DatabaseWatcherService\" Windows Service - Work

1条回答
  •  -上瘾入骨i
    2020-12-09 21:15

    This will only work, as far as I am aware, when you are calling the hub from within the web application.

    In order to interact with the hub from outside of the web application, e.g. from a Windows Service, you will need to take a look at the SignalR Client Hubs documentation

    1. Add the following NuGet package to your project: Microsoft.AspNet.SignalR.Client

    2. Add the following statement to the top of your page: using Microsoft.AspNet.SignalR.Client;

    3. You would need to create a connection to the hub, and then start the connection.


    var connection = new HubConnection("http://mysite/");
    IHubProxy myHub = connection.CreateHubProxy("MyHub");
    
    connection.Start().Wait(); // not sure if you need this if you are simply posting to the hub
    
    myHub.Invoke("addNewMessageToPage", "Hello World");  
    

    In your hub you would then need to have a method for AddNewMessageToPage which accepts the hello world string and from here call Clients.All.addNewMessageTopage(message)

    0 讨论(0)
提交回复
热议问题