【发布时间】:2014-08-14 13:35:21
【问题描述】:
我还在学习 SignalR。在 asp.net web Api 中,我创建了一个简单的集线器。并且在角度方面,我创建了一个工厂来实例化与集线器的连接。
public class NotificationHub : Hub
{
public void Hello()
{
var x = "test";
Clients.All.hello(x);
}
}
客户端。
.factory("NotificationHub", function(){
var NotificationHubFactory = {};
NotificationHubFactory.proxy = null;
var initialize = function(){
$.connection.hub.url = "http://localhost:18678/signalr";
$.connection.hub.start().done(function(response){
NotificationHubFactory.proxy = $.connection.notificationHub;
}).fail(function(error){
console.log(error);
});
};
initialize();
return NotificationHubFactory;
});
问题是当我尝试这样做时。
NotificationHub.proxy.server.hello();
NotificationHub.proxy.client.hello = function(data){
console.log(data);
};
NotificationHub.proxy.client.hello 永远不会被调用。虽然如果我在集线器Clients.All.hello(x); 中设置一个断点,它会触发,这意味着它在客户端中找不到hello 方法。
任何想法是什么问题?
【问题讨论】:
-
当您交换 2 行以便在调用
server.hello()之前附加客户端回调时会发生什么? -
hub.start()是异步的,因此您有可能在它准备好之前就使用它。但如果是这种情况,您可能会在控制台中看到错误,因为NotificationHub.proxy为空。 -
我在控制台中没有收到任何错误。
标签: c# asp.net angularjs signalr