IIS上的SignalR丢弃连接

时间:2016-04-14 16:19:11

标签: c# wpf iis signalr

我有一个使用SignalR的制作聊天应用程序。第一阶段是连接的内存映射。我使用带有GUID的静态字典作为roomname / groupname。我在我的字典中映射连接以模仿我在Groups中进行的相同添加/删除调用,以便我可以使用Clients.Group(roomname)或Clients.Group(Connection.RoomName)将消息发送给一部分人。 / p>

然而,看似随机,可能每周一次或两次我的所有桌面用户都断开连接,他们可以通过重新启动应用程序立即重新连接。它们似乎在被丢弃时重新连接,但不完全是因为它们将接收呼叫,即使它们不应该因为它们“离开”并且呼叫将是空的,这意味着它们具有操纵该组所需的信息但是它们不是小组的一部分。

这可能是重新连接/重新连接触发的问题,但没有重新加入所有适当的组(因为这不能保证)?我处理onconnected和ondisconnected但我对onReconnected没有任何作用。

它也可能是服务器上的内存问题,但我不认为我超出了允许的最大内存,因为我存储的只是文本,而是带有文本的对象。一旦他们谈话结束,我就清除了这些联系。

一些相关代码(显然不合时宜):

     public class Connection
       {
          private string roomName;
          private Dictionary<string, ChatUser> users;
          private List<ChatMessage> messages;
          private bool answered;
          private CRMHub crmHub;
          private DateTime createdOn;


  public static Dictionary<string, Connection> Connections = new Dictionary<string, Connection>();


 conn = new Connection(personalRoom);
           conn.Users.Add(Context.User.Identity.Name, tempUser);
           Connections.Add(personalRoom, conn);
           Groups.Add(Context.ConnectionId, personalRoom);

0 个答案:

没有答案