客户端没有接收到消息

本文关键字:消息 客户端 | 更新日期: 2023-09-27 18:14:29

我有一个。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<string, string>("processMessage", (group, message) =>
{
    Console.WriteLine(message);
});
await hubConnection.Start();
await hub.Invoke<string>("Subscribe", "New group");

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

服务器代码

private void CallBack(string group, string message) 
{
    Clients.Group(group).processMessage(group, message);
}

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

编辑

客户端没有接收到消息

没有完整的服务器端代码很难说,但我认为这部分是错误的

hubConnection.CreateHubProxy("Hub");

作为参数,您需要服务器端hub类的名称。例如

hubConnection.CreateHubProxy("MyHub");

要获得有关客户端失败原因的更多信息,您可以将以下内容临时添加到HubConnection

hubConnection.TraceLevel = TraceLevels.All;
hubConnection.TraceWriter = Console.Out;

添加此内容后,您将在VS

的输出部分中获得进一步的调试信息。