나는 OnConnected 및 OnDisconected를 사용하여 사용자 트랩을 유지하고 메모리를 줄입니다.SignalR 상태 변수에 값을 저장하는 방법
내 문제는 SignalR에서 어떤 변수도 할당 할 수 없다는 것입니다. 다음 코드를 사용하고 있습니다.
Clients.Caller.userid를 읽을 때 항상 null입니다. 그러나 xxSameProcess 변수가 null이 아닌 값을 할당 한 후 즉시 읽을 수 있습니다.
내가 무엇을 누락 되었습니까? 이
<script src="~/signalr/hubs"></script>
<script type="text/javascript">
(function ($) {
//some stuff
$.connection.hub.qs = { 'uid': '@guid' };
$.connection.hub.start();
})(jQuery);
</script>
를 연결할 때
내 옆에public override System.Threading.Tasks.Task OnConnected()
{
var user = CreateUser();
Clients.Caller.userid = user.UserId;
object xxSameProcess = Clients.Caller.userid;
return base.OnConnected();
}
public override System.Threading.Tasks.Task OnDisconnected()
{
object xx = Clients.Caller.userid;
CreateDelete(Clients.Caller.userid);
return base.OnConnected();
}
난 단절 후에 상태 객체가 더 이상 사용 가능하지 않다는 것을 확실히 확인하십시오 (연결 해제 후 이벤트가 트리거 됨). 일반 허브 메서드에서 사용자 ID에 액세스하려고 시도하면 다시 확인할 수 있습니다. 나는 또한 당신이 달성하고자하는 것에 대해 ConnectionId를 사용할 수 있다고 생각합니다. – Wasp
onConnected 및 OnDisconnected 변수를 저장할 수없는 것 같습니다. –