我有一个场景,其中一个客户端向集线器方法AddMessage
发送请求,而这个请求又应该将该消息广播给所有客户端,包括启动它的客户端。如何使用C#从SignalR客户端的Hub类接收广播消息?
编辑
问题是,我能够从客户端调用中心方法AddMessage
如下面的代码,但我无法找到一个方法来处理客户端的广播消息这是使用以下行在Hub类中启动的。
Clients.All.NotifyMessageToClients(name, message);
SignalR集线器类
using System;
using Microsoft.AspNet.SignalR;
using System.Threading.Tasks;
public class SignalRChatHub : Hub
{
public void AddMessage(string name, string message)
{
// Following call is supposed to notify all clients with passed parameters.
// They could have a method called NotifyMessageToClients to fetch the broadcasted message
Clients.All.NotifyMessageToClients(name, message);
}
}
SignalR客户
using System;
using Microsoft.AspNet.SignalR.Client;
public partial class Default : System.Web.UI.Page
{
HubConnection hubConnection;
IHubProxy stockTickerHubProxy;
public Default()
{
hubConnection = new HubConnection("http://localhost:6898/");
stockTickerHubProxy = hubConnection.CreateHubProxy("SignalRChatHub");
}
async public void SendAddNotification(string msgFrom, string msg)
{
// Following line calls Addmessage method in SignalRChatHub class
await stockTickerHubProxy.Invoke("Addmessage", "Ajendra", "Hello StackOverflow");
}
// I might need the method NotifyMessageToClients here... to receive broadcasted message
}
我有关于如何通过创建一个客户端来实现的jQuery但不是在C#相同的一些想法正如我上面所做的。我将如何实现这一点,任何帮助将不胜感激。
如果上述方法没有任何意义,请给我一个正确的建议。由于
我对你写这个问题的方式感到有点困惑,你不清楚你在这里问什么。你在问如何向所有客户广播一条消息?因为你已经做到了。还是你问在客户端如何接收它们?或者也许你不知道如何建立从客户端的连接?无论如何,请尽量在你的提问中尽可能明确,也许你可以告诉我们你到目前为止所尝试过的。 – Dennis1679
@ Dennis1679对于混淆感到抱歉,请查看编辑部分以获得更清晰的信息。希望现在清楚 –