我有一个.NET控制台应用程序,我正在使用signalR进行练习。
我看到状态从“连接中”变为“已连接”,但当服务器发送消息时,客户端没有收到“接收到”事件。服务器在客户端订阅后立即发送群组消息,并且我可以看到带有正确的“新组”组名的消息被发送,但是我从未在客户端收到该消息。当服务器使用该方法时,我也没有收到processMessage事件。 服务器代码
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)”方法。
编辑: 这在 JavaScript 中可以运行,但在 .NET 客户端中似乎不起作用。
hubConnection
上调用On
,应该在hub
上调用...我理解这可能只是一个简单的拼写错误,但如果代码确实有明显的错误(甚至无法编译),那就很难证明哪里出了问题。 - Wasp