2012-09-28 4 views
0

내 데이터베이스에 사용자에게 일부 영역 권한이 있습니다. 이 영역을 SignalR 그룹에 추가하면됩니다. 로그인 할 때 데이터베이스에서이 그룹을 가져 와서 세션 [ "groups"]에 저장하고 사용자가 signalR에 연결하면이 세션을 사용하여 그룹으로 추가합니다. 이 같은 뭔가 :SignalR connect에서 세션 사용 방법

public Task Connect() 
{ 
    var groups = (string[])Session["groups"]; 
    foreach (var group in groups) 
    { 
     Groups.Add(Context.ConnectionId, group); 
    } 
} 

어떻게 같은이 또는 뭔가를 할 수 있습니까?

답변

0

으로 당신은 그룹에 연결을 추가하고 특정 그룹에 메시지를 보낼 수 있습니다 SignalR Hubs - Managing groups

언급했다. 그룹은 서버에 유지되지 않으므로 응용 프로그램은 어떤 그룹에 어떤 연결이 있는지 추적 할 책임이 있으므로 그룹 수와 같은 항목을 얻을 수 있습니다.

즉, 데이터를 보관하기 위해 사전과 같은 구조를 제공해야합니다.

예를 들어, 그룹 이름을 키로, 영역 목록을 값으로 (또는 다른 방법으로 가장 잘 어울리는 경우) 보유하는 사전.

사용자의 새 영역마다 먼저이 사전을 업데이트 한 다음 변경된 그룹에 사용자를 가입시킵니다.

Groups.Add(Context.ConnectionId, group);

그럼에도 불구하고 여기 Topic based pub sub design patern 위의 링크를보고 가져 가라. WCF가 제목 때문에 망설이지 마십시오. 필터 클래스를 구현하는 방법에 대해 자세히 살펴보십시오.