我似乎有SignalR的JS客戶中心的問題。在SignalR客戶端集線器上的事件不會被調用
的問題是,在「開」的處理程序似乎不工作 - 它不會產生錯誤,但沒有接收服務器發出的信號。下面 的代碼顯示了一個摘要,我打電話的正常工作的服務器(使用Invoke) - 然後我打電話回acceptHubData應拿起客戶端上,但不是在服務器上。
我的目標是導航到每個頁面將打開一個特定的輪轂和釋放,當用戶移動到另一頁連接的連接頁面時!
編輯:使用下面的代碼片段的作品,但我想知道爲什麼下面使用'on'事件的代碼不起作用!
var superHub = $.connection.mySuperHub;
superHub.client.acceptHubData = function (data) {
$('<li>hello there' + data + '</li>').prependTo($('#ul1'))
}
$.connection.hub.start().done(function() {
$('<li>done phase 1</li>').prependTo($('#ul1'))
});
任何幫助將不勝感激!
這是客戶端代碼(JS)
$(document).ready(function() {
var myHub;
try {
var connection = $.hubConnection();
connection.start().done(function() {
myHub = connection.createHubProxy("mySuperHub");
myHub.on('acceptHubData', function (data) {
alert(data); // THIS IS NOT CALLED!
});
myHub.invoke('AcceptSignal', "hello from the client2");
});
}
catch (e) {
alert(e.message);
}
});
這是服務器代碼:
[HubName("mySuperHub")]
public class MyHub : Hub
{
private readonly HubEngine _hubEngine;
public MyHub() : this(HubEngine.Instance) { }
public MyHub(HubEngine hubEngine)
{
_hubEngine = hubEngine;
}
public void AcceptSignal(string msg)
{
Clients.Caller.acceptHubData("hi");
Clients.All.acceptHubData("hi");
}
}
看到這個http://stackoverflow.com/a/42527962/1770868 –