2016-09-19 4 views
4

나는 signalR과 신뢰할 수있는 액터 설정을 가진 웹 API가있는 서비스 패브릭 클러스터를 가지고 있습니다.Azure 서비스 패브릭 WebAPI with SignalR

웹 API를 때리는 별도의 MVC 응용 프로그램도 있습니다.

signalR에 연결할 수 있습니다. MVC 앱으로 정상적으로 작동하며 모든 것이 잘 작동합니다. 그러나 MVC 앱이 연결된 그룹에 신호를 보내야하는 신뢰할 수있는 액터를 API에 연결하면 내 MVC 앱에서 아무런 문제가 발생하지 않습니다. 확실하게 로깅하도록 API를 때리고 있다는 것을 알고 있습니다.

로드 균형 조정기를 세션 지속성을 클라이언트 IP로 설정했습니다. 나는 signalR hub가 다른 hub의 동일한 hub가 아닐지도 모른다. 이것이 모두가 같은 사람이되도록 강제 할 수있는 방법이 있습니까? 나는 아무것도 잊어 버리고 있니? 추가 정보가 필요한지 알려주십시오.

+1

그것이 어떤 트래픽이 하나 개 SignalR 서버로 이동하지만, 클라이언트가 다른 연결되어있을 수 있으며 메시지가 표시되지 않습니다 당신은 백플레인이 없어서 서버들이 서로 이야기하지 않기 때문에? – Pawel

답변

2

은 내가 찾은 답은 SignalR Scaleout with Redis

는 기본적으로이 서비스 패브릭의 모든 노드에 signalR 메시지를 공유 할 레디 스를 사용했다.

간단히 레디 스, Microsoft.AspNet.SignalR.Redis를 참조하고 시동이 추가 설정 :

GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(redisConnectionString, "SignalR")); 
관련 문제