我有一个类GroupManager,在此过程中我想将人们分组并从静态方法向他们发送消息,是否可能?
这是我的班级GroupManager
public class GroupManager: Hub
{
// The dictionnary contains <userName, conectionId>
private static Dictionary<string, string> _reference { get; set; }
private static void CreateRoom(string roomName)
{
foreach (var user in _reference)
{
// error
Groups.Add(user.Value, roomName);
Clients.Group(roomName).sendMessageToClient("user connected : " + user.Key);
}
}
}
当我致电 Groups.Add ...
时有一个错误:
非静态字段,方法或属性
需要对象引用
与 Clients.Group ...
相同的错误我理解这个问题,但我不知道如何获得Hub的对象引用。
由于
编辑:
答案 0 :(得分:1)
为什么要将CreateRoom设为静态?如果它在静态数据上运行,则不需要它是静态的(并且通过使其静态,它不能对实例数据进行操作)。
如果您需要从集线器外部访问集线器,请参阅以下内容:
http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub
答案 1 :(得分:0)
从字典属性和CreateRoom方法中删除关键字“static”。
静态方法无法对实例数据进行操作,这就是问题所在。