저는 SignalR을 실험하기 시작했습니다. 나는 각 연결된 클라이언트에 대한 정보를 저장하는 융통성있는 방법을 생각해 냈습니다. 예를 들어, 각 메시지와 함께 전달하지 않고 채팅 응용 프로그램에 이름을 저장합니다.SignalR - 클라이언트 정보 저장
현재이 속성이 포함 된 개체에 대한 connectionId와 일치하는 정적 사전이 있습니다. 연결시이 사전에 추가하고 연결 해제시 제거합니다.
내가 겪고있는 문제는 모든 연결 해제 이벤트가 발생하지 않는 것입니다. Chrome에서 탭을 닫으면 연결이 끊어지는 것 같습니다. 그러나 탭을 빠르게 새로 고침하면 연결 끊기가 발생하지 않는 것입니다 (적어도 '깨끗하게'는 아님). 예를 들어 같은 탭을 반복해서 다시로드하면 사전에 여러 항목이있을 때 이론적으로는 하나 인 것으로 나타납니다.
이러한 종류의 연결 정보를 저장하는 표준 방법이 있습니까? 그렇지 않으면 내가 겪고있는 문제의 원인은 무엇입니까?
네, 덕분에 많은 도움이됩니다. 언제나 제대로 끝났습니다. 나는 타임 아웃에 대해 몰랐다. 또한 어떻게 OnReconnect 이벤트를 처리해야합니까? – Barguast
예! GlobalHost.Configuration.DisconnectTimeout. 다시 연결하려면 사용자가 존재하는지 확인해야합니다. 그러면 사용자가 존재하지 않는 경우 아무 것도하지 않고 추가하지 않으면 =). –
사용자가 존재하는지 확인 - 제공된 connectionID가있는 항목이 있는지 여부를 의미합니까? 나는 연결이 실제로 무엇을 나타내고, 무엇이 평생인지, 등등에 관해서는 여전히 조금 퍼지다. 나는 문서들을 완전히 읽도록 할 것이다. – Barguast