2012-07-15 3 views
2

Azure의 Signalr은 확장 성을 위해 서비스 버스 구현 (예 : https://github.com/SignalR/SignalR/wiki/Azure-service-bus)이 필요합니다. Signalr의 방송 기능이 필요하지 않은 경우Azure의 Signalr : 단일 클라이언트를 호출하기위한 서비스 버스가 필요합니까?

// Invoke a method on the calling client 
Caller.addMessage(data); 

, 여전히 기저의 서비스 버스가 필요하다 :

는하지만, 내 서버는 단일 클라이언트에 콜백 (발신자) 무엇입니까?

답변

9

서비스 버스 의존성은 Azure에 특정한 것이 아닙니다. 여러 대의 서버가 작동 중일 때마다 signalR 클라이언트 중 일부가 특정 서버에 대한 연결을 만들었을 것입니다. 여러 서버를 동기화하려면 서버를 실시간으로 통신 할 수 있도록 서버를 처리해야합니다. 서비스 버스의 pub-sub 모델은이 요구 사항을 충족시킵니다.

dfowleR은 의견에이 특정 사례를 나열합니다. 그걸 꼭 읽으십시오!

당신이 signalR (푸른에 SLA없이) 단일 서버에서 실행하는 경우는 새로운 하늘빛 웹 사이트뿐만 아니라 클라우드 서비스 웹 역할에 잘 작동합니다. 서비스 버스 종속성을 사용하지 않고 단일 서버에서만 실행되는이 간단한 시나리오에서 screencast을 수행했습니다.

+0

입력 해 주셔서 감사합니다. 여러 대의 서버가 필요하지만 서버간에 데이터를 동기화 할 필요가 없습니다. 나는 Signalr을있는 그대로 사용할 수 있다는 것을 알고 있으며, 서비스 버스는 필요 없다. 맞습니까? –

+7

문제는 어떤 이유로 든 longpolling을 사용하여 결국 다른 서버로로드 균형을 잡으면 복제가 필요하며 메시지가 누락 될 수 있습니다. – davidfowl

+0

@dfowler 정확히 내가 알고 싶었던 것, 감사합니다. Signalr btw에서 놀라운 작품 :) –

2

로드 균형 시나리오를 지원하려면 여러 인스턴스 (예 : Azure)간에 "서버 대 서버"SignalR PersistConnection을 설정할 수 있습니까? 그렇다면 모든 인스턴스가 시작시 등록되므로 SQL Azure 테이블을 사용할 수 있으므로 newest는 이전 인스턴스에 연결할 수 있습니다.

관련 문제