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

博客讨论了在.NET控制台应用程序中使用SignalR时遇到的问题,即客户端成功连接到服务器但无法接收到消息。作者设置了状态改变和消息接收事件监听器,但在服务器发送组消息后,客户端没有触发'已接收'事件或`processMessage`回调。问题可能与服务器端的Hub类名称不匹配有关。解决方案包括检查Hub的名称并启用客户端的调试信息以获取更多信息。
摘要由CSDN通过智能技术生成

我有一个.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信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值