signalr收不到服务器的信息,c# – SignalR .NET客户端无法接收消息

  • Post author:
  • Post category:其他


我有一个.NET控制台应用程序,我正在练习signalR.var hubConnection = new HubConnection(“http://URL/signalr/”);

var hub = hubConnection.CreateHubProxy(“Hub”);

hub.StateChanged += change =>

{

Console.WriteLine(change.NewState);

};

hub.Received += s =>

{

Console.WriteLine(s);

};

hub.On(“processMessage”, (group, message) =>

{

Console.WriteLine(message);

});

await hubConnection.Start();

await hub.Invoke(“Subscribe”, “New group”);

我看到状态从连接变为已连接,但是当服务器发送消息时,我没有在客户端上收到“已接收”事件.一旦客户端订阅,服务器就会发送组消息,我可以看到正在使用正确的“新组”组名发送的消息,但是我从未在客户端上收到消息.当服务器使用该方法时,我也没有收到processMessage事件.

服务器代码private void CallBack(string group, string message)

{

Clients.Group(group).processMessage(group, message);

}

服务器上的另一个方法是Subscribe,它只是设置我的内部服务器,当它有可用于发送给客户端的数据时使用CallBack方法.

编辑

这在Javascript中工作,它似乎在.NET客户端中不起作用.

最佳答案 没有完整的服务器端代码,很难说,但我认为这部分是错误的hubConnection.CreateHubProxy(“Hub”);

作为参数,您需要在服务器端上使用您的hubclass的名称.例如hubConnection.CreateHubProxy(“MyHub”);

要在客户端获取有关失败原因的更多信息,可以临时将以下内容添加到HubConnection中hubConnection.TraceLevel = TraceLevels.All;

hubConnection.TraceWriter = Console.Out;

添加后,您将在VS的输出部分获得进一步的debuging信息