如何从ASP.NET MVC中的控制器调用SignalR客户端方法

时间:2019-07-18 20:03:42

标签: asp.net-mvc signalr signalr-hub

我想从Controller中的AJAX Action调用SignalR Hub方法,一切似乎都没有问题,但是执行代码时什么也没有发生,并且没有错误出现,

我在布局页面中放置了signalr-jquery,

那是我的全部代码

我搜索了2天,但找不到任何解决方案,我很累

布局页面:

 <html>
 <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>@ViewBag.Title</title>
</head>
<body>
   @RenderBody()

   <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
   <script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script>
   <script src="/signalr/hubs"></script>
 </body>
 </html>

聊天控制器中的AJAX操作:

 public class ChatController : BaseController
 {

        [HttpPost]
        public async Task<ActionResult> AddChat(ChatVM model)
        {
            var context = 
             GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
            await context.Clients.All.receiveMessage(model);
           //  some code here
           return PartialView("_Comment", chatList);
        }
  }

聊天中心:

 public class ChatHub : Hub
 { 
 }

“聊天”页面中的Javascript代码:

 var onReceive = function (obj) { 
     alert("work right");
 }

 window.addEventListener('load', function () {

    var chatHub;

    chatHub = $.connection.chatHub;
    chatHub.client.receiveMessage = onReceive;
    $.connection.hub.start();

  }, false);

没有错误消息出现

0 个答案:

没有答案