SignalR中的会话数据:在哪里存储它们

本文关键字:在哪里 存储 数据 会话 SignalR | 更新日期: 2023-09-27 18:19:05

让我们假设我有一个使用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()"函数

我怎样才能做得好呢?

SignalR中的会话数据:在哪里存储它们

您可以使用Groups:

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