0

这是我的 wcfService 代码 -

 public class SystemService : ISystemService
{
    private IHubContext hubContext;
    public SystemService()
    {
       hubContext = GlobalHost.ConnectionManager.GetHubContext<WebApplication1.MyHub1>();    
    } 

    public void SendMessage(string sender, string message)
    {
        hubContext.Clients.All.SendMessage(sender, message);  
    }
}

我的带有 signalR 集线器的 Web 应用程序运行良好。

    namespace WebApplication1
{
    [HubName("myHub1")]
    public class MyHub1 : Hub
    {
        public void SendMessage(string name, string message)
        {
            // Call the broadcastMessage method to update clients.
            Clients.All.broadcastMessage(name, message);

        }

    }
}

只有来自 wcf 客户端的消息没有收到。跟踪日志中没有错误消息。如果可能的话,任何人都可以建议我在这里缺少什么。请询问是否需要任何其他详细信息。

4

1 回答 1

0

更改代码以生成代理。现在工作。

 public class SystemService : ISystemService
{
    private readonly IHubProxy proxy;
   // private IHubContext hubContext;
    public SystemService()
    {

       var con = new HubConnection("http://localhost:53098/");
        proxy = con.CreateHubProxy("myHub1");
        con.Start().Wait();
    } 

    public void SendMessage(string sender, string message)
    {
        proxy.Invoke("SendMessage", sender, message);
        //hubContext.Clients.All.SendMessage(sender, message);  
    }
}

但令人震惊的是,我最初只是尝试使用这种方法,但它之前并没有奏效。所以我在我的问题中尝试了上面的 IhubContext 。

于 2018-10-09T03:31:27.243 回答