SignalR中的会话数据:存储它们的位置?

时间:2015-10-25 09:49:55

标签: c# signalr signalr-hub

我们假设我有一个使用SignalR在客户端之间共享信息的游戏。在我的Hub类中,我有一个名为“joinGame()”的方法,当某个客户端想要加入时会调用该方法。我需要将他的ID添加到某个阵列,以便知道他已加入游戏。它不需要在数据库中,因为我只在此会话期间需要此信息。

public class GameHub : Hub
{
    public List<int> Players = new List<int>();

    public void joinGame(int id) //player updates his position
    {
         Clients.All.newPlayer(id);
         Players.Add(id);
    }
}

此代码不起作用,因为每次调用“joinGame()”函数时,“Players”变量似乎都会被清除。

我该怎么做呢?

1 个答案:

答案 0 :(得分:3)

您可以使用Groups

public async Task JoinGame(int id)
{
    await Groups.Add(Context.ConnectionId, id);
    Clients.All.newPlayer(id);
}