다양한 리소스를 기반으로 signalr
코드가 작동해야하지만 서버에서 클라이언트로 알림을 보내도록 만들 수는 없습니다. 다음은 HTML/자바 스크립트 일부입니다SignalR 서버에서 클라이언트 메소드가 작동하지 않습니다.
<script src="/Scripts/jquery-1.6.4.min.js"></script>
<script src="/Scripts/jquery.signalR-2.2.1.min.js"></script>
<script src="/signalr/js"></script>
<script type="text/javascript">
$(function() {
var cHub = $.connection.cHub;
$.connection.hub.logging = true;
cHub.client.sendMessage = function (content) {
$("#container-hub").append($("<p />").html(content));
};
$.connection.hub.start().done(function() {
$('[id$=bGo]').click(
function() {
cHub.server.send('Sync process started');
});
});
});
</script>
<div id="container-hub" style="background: red; height: 100px; width: 100%;"></div>
Hub.cs 클래스 :
using Microsoft.AspNet.SignalR;
namespace CMS.Objects
{
public class CHub : Hub
{
public void Send(string message)
{
// Call the broadcastMessage method to update clients.
Clients.All.sendMessage(message);
}
}
}
Startup.cs 클래스 : 여기
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(CMS.CStartup))]
namespace CMS
{
public class CStartup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
그리고 내가 방법을 sendMessage
메소드를 호출하고 방법입니다 :
private void ShowMessage(string message)
{
var clients = GlobalHost.ConnectionManager.GetHubContext<CHub>().Clients;
clients.All.sendMessage(message);
}
bGo
버튼을 클릭하면 메시지가 container-hub
div에 추가되지만, sendMessage
메서드를 호출하면 아무 것도 표시되지 않습니다.
편집
일부 추가 연구 결과; 나는 OnConnected
방법 내에서 sendMessage
를 호출 할 때 그것은 작동 :
public override Task OnConnected()
{
Clients.All.sendMessage("Connection Initialised");
return base.OnConnected();
}
""이 맞습니까? 일반적으로 "신호기/허브"입니다. – ravi
예, 확신합니다. 서버 통신에 대한 클라이언트가 잘 작동한다고 언급했습니다. – Morpheus