1
나는 "Broadcasting over a Hub from outside of a Hub"을 따르고 있지만 클라이언트 브라우저에는 메시지가 표시되지 않습니다. 오류도 없습니다. 그것은 hubContext를 가져 와서 메시지를 보낼 때 signalR이 내 브라우저에 대해 알지 못하는 것과 같습니다.SignalR을 사용하여 서버에서 클라이언트로 전화하는 방법은 무엇입니까?
그러나 클라이언트에서 허브로 호출 할 때 허브가 예상대로 작동합니다.
내 허브 : 서버에서 다른 시간과 장소에서
[HubName("myHub")]
public class MyHub : Hub
{
public void SaySomething(string message)
{
Clients.say(message);
}
public void SayHelloWorld()
{
Clients.say("hello world");
}
}
코드 :
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.say(message);
그리고 내 클라이언트 스크립트 :
<script src="Scripts/jquery.signalR-0.5.3.js" type="text/javascript" > </script>
<script src="signalr/hubs"> </script>
<script type="text/javascript">
var hub = $.connection.myHub;
$.extend(hub, {
Say: function(message) {
alert(message); //this only works when the sayHelloWorld() method is executed
}
});
$.connection.hub.start()
.done(function(){
hub.sayHelloWorld(); //this works
});
</script>
이 코드는 저에게 잘 맞습니다. 어떤 브라우저를 사용하고 있으며 어디에서 허브 외부로 브로드 캐스트하려고합니까? –
Windows에서 Chrome 22.0.1229.94 m을 사용하고 있습니다. 내 코드에서 여러 곳에서 방송을 시도했는데, 내 UI 계층 (낸시 사용), 도메인 서비스 계층 및 내가 생각할 수있는 모든 곳에서. –
@akoeplinger 당신은 코드가 당신을 위해 일한다고 말한다. 내 작품도 마찬가지입니다. ConnectionManager를 사용하여 브로드 캐스트를 사용하여 say 메소드를 호출 할 수 있습니까? 방금 시작하여 SignalR 위키에 따라 솔루션을 다시 빌드 한 것과 같은 결과를 얻었습니다. 나는 클라이언트에서 서버로 (같은 인스턴스에서 클라이언트로 서버를 허용) 통신 할 수 있지만 방송 할 수는 없다. 오류도 메시지도 없다. –