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