我有一个MVC4应用程序设置来测试SignalR推送通知,但它无法正常工作。 (我已经在MVC官方网站上测试了聊天应用程序并且它的工作正常,问题是当我从控制器推送消息时)。请有人帮我解决这个问题。
(1)我有启动cs如下,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Owin;
using Owin;
namespace MvcApplication3
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
(2)Hub类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
namespace MvcApplication3
{
[HubName("notificationHub")]
public class NotificationHub : Hub
{
}
}
(3)我在控制器上做的是,
public ActionResult Index()
{
SendMessage("This should be displayed on client !!");
return View();
}
private void SendMessage(string message)
{
var context = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
context.Clients.All.viewMessage(message);
}
(4)最后在Index视图中,
<style type="text/css">
#span-display
{
color: red;
font-size: 16px;
}
</style>
<span id="span-display"></span>
@section scripts
{
<script src="~/Scripts/jquery.signalR-2.0.1.min.js"></script>
<script src="~/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
var notificationhub = $.connection.notificationHub;
notificationhub.client.viewMessage = function (message) {
$('#span-display').html(message);
};
$.connection.hub.start();
});
</script>
}
请帮助我们,我在截止日期前无法解决这个问题。如果这是一件简单的事情,请原谅我这个技术的新手。
提前谢谢: - )
答案 0 :(得分:0)
我测试的代码几乎相同,并且它有效,我发现的唯一不同之处在于启动类,我也有:
[assembly: OwinStartup(typeof(SignalR_Example.Hubs.Startup))]
namespace SignalR_Example.Hubs
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
尝试使用第一行将值更改为您的值,其他重要的是JS,您是否检查过浏览器控制台?,是否有任何错误或类似的错误?