我们假设我有一个使用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”变量似乎都会被清除。
我该怎么做呢?
答案 0 :(得分:3)
您可以使用Groups:
public async Task JoinGame(int id)
{
await Groups.Add(Context.ConnectionId, id);
Clients.All.newPlayer(id);
}