我正在學習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");
};
});
我似乎不明白是什麼造成了這種情況。
有你加入signalR JavaScript的鏈接,客戶端? –
是的,我有,並沒有在客戶端的錯誤,我檢查控制檯。 – progrAmmar
你跟着哪個教程? –