从wcf服务到SignalR Web应用没有更新

时间:2018-10-09 02:28:38

标签: signalr wcfserviceclient

这是我的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客户端的消息。 跟踪日志中没有错误消息。如果可能,任何人都可以建议我在这里缺少什么。 请询问是否需要其他详细信息。

1 个答案:

答案 0 :(得分: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。