2016-02-09 135 views
2

我正在学习SignalR,它非常简单。但是,我在将消息从服​​务器发送到客户端时遇到问题。从SignalR 2.0发送消息到客户端SignalR 2.0

我的HUB类如下:

public class UpdateHub : Hub 
{ 
    private readonly UpdateBroadcast _broadcaster; 

    public UpdateHub() : this(UpdateBroadcast.Instance) { } 

    public UpdateHub(UpdateBroadcast broadCaster) 
    { 
     _broadcaster = broadCaster; 
    } 
} 

我打电话来这个枢纽在我的广播类是这样的:

public class UpdateBroadcast 
{ 
    private readonly static Lazy<UpdateBroadcast> _instance = new Lazy<UpdateBroadcast>(
    () => new UpdateBroadcast(GlobalHost.ConnectionManager.GetHubContext<UpdateHub>())); 

    private IHubContext _context; 

    private UpdateBroadcast(IHubContext context) 
    { 
     _context = context; 
    } 

    public static UpdateBroadcast Instance 
    { 
     get { return _instance.Value; } 
    } 

    public void UpdatePost(Post post) 
    { 
     _context.Clients.All.updatePost(post); 
    } 

} 

在我的MVC控制器我打电话的UpdatePost方法:

public JsonResult AddPost(Post post) 
{ 
    UpdateBroadcast broadcaster = UpdateBroadcast.Instance; 
    Post result = dbFunctions.AddPost(post); 
    broadcaster.UpdatePost(post); 
    return Json(new { success = result != null }, JsonRequestBehavior.DenyGet); 
} 

当我调试代码时,我可以看到UpdatePost被执行但没有任何活动在客户端。我的客户端功能是这样的:

$(function() {  
    var update = $.connection.updateHub; 
    update.client.updatePost = function (data) { 
     alert("called update post"); 
    }; 
}); 

我似乎不明白是什么造成了这种情况。

+0

有你加入signalR JavaScript的链接,客户端? –

+0

是的,我有,并没有在客户端的错误,我检查控制台。 – progrAmmar

+0

你跟着哪个教程? –

回答