【发布时间】:2016-05-18 23:44:07
【问题描述】:
我正在学习 SignalR,它非常简单。但是,我在将消息从服务器发送到客户端时遇到问题。
我的 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链接?
-
是的,我有并且客户端没有错误,我在控制台中检查了。
-
你学过哪个教程?
标签: c# jquery asp.net-mvc-5 signalr