SignalR集线器Context.ConnectionId对象引用错误

问题描述 投票:1回答:1

我完成了一堆SignalR教程,并向特定客户端发送消息。我得到以下信息:

错误:

非静态字段,方法或属性'HubBase.Context'需要对象引用。

代码:

public class ProgressHub : Hub
{

    public string msg = "Initializing and Preparing...";
    public int counter = 1;

    public static void SendMessage(string msg, int count)
    {
        var message = msg;
        var hubContext = GlobalHost.ConnectionManager.GetHubContext<ProgressHub>();
        //Context.ConnectionId throwing error
        hubContext.Clients.Client(Context.ConnectionId).sendMessage(string.Format(message), count); 
    }

    public void GetCountAndMessage()
    {
        Clients.Caller.sendMessage(string.Format(msg), counter);
    }
}

不确定我在做什么错,Context.connectionId行是否与他们使用的行完全相同,而我却给出了对象引用错误?

c# asp.net asp.net-mvc signalr signalr-hub
1个回答
1
投票

错误消息指出,您正在尝试使用静态方法访问非静态Context属性,这是不可能的(有关更多信息,请参见Static Classes and Static Class Members)。解决此问题的一种方法是通过删除SendMessage关键字使static方法变为非静态。

© www.soinside.com 2019 - 2024. All rights reserved.