SignalR (1.0.1) 최신 버전을 사용하고 있습니다. 컨트롤러에서 허브로 브로드 캐스트하려고하는데 몇 가지 문제가 있습니다.SignalR Broadcast from Controller가 작동하지 않습니다.
- 클라이언트가 메시지를받지 못하는 것 같습니다.
내 허브 :
public class SignalRPriceHub : Hub
{
public void sndMessage(string msg)
{
Clients.All.addMessage(msg + "****");
}
}
자바 스크립트 클라이언트 :
<script src="@Url.Content("~/Scripts/jquery.signalR-1.0.1.min.js")"></script>
<script src="~/signalr/hubs"></script>
.....
var myHub = $.connection.signalRPriceHub;
myHub.client.addMessage = function (message) {
alert(message);
};
컨트롤러 :
내 허브 컨텍스트도 정의 된 'addMessage'을 가지고var context = GlobalHost.ConnectionManager.GetHubContext<SignalRPriceHub>();
context.Clients.All.addMessage("TestOutsideMessage!!!");
내가 알아챈 몇 가지 사항 : 1. 내 허브 컨텍스트에 'addMessage'가없는 것 같습니다. { " 'Microsoft.AspNet.SignalR.Hubs.ClientProxy'에는 'addMessage'"} 시스템에 대한 정의가 없습니다. 예외 {Microsoft.CSharp.RuntimeBinder.RuntimeBinderException} 내가 위에서 내 클라이언트 코드와 같은 파일에서 다음 코드를 실행하면
, 나는 메시지를받을 수 있나요.
var myHub = $ .connection.signalRPriceHub; $ .connection.hub.start (function() { myHub.server.sndMessage ("Hello World!"); });
어떤 일이 벌어 질지에 관해 밝힐 수 있습니까? 모두에게 감사드립니다!
정말 훌륭한 답변을 해주셔서 감사합니다. 코드의 각 행이 무엇을하는지 실제로 생각하지 않고이 모든 것을 설정하는 "동작을 진행했습니다." 다시 감사합니다! – mvcNewbie