【问题标题】:Call signalr from another controller从另一个控制器调用信号器
【发布时间】:2014-01-10 22:08:46
【问题描述】:

我有一个 ChatHub 正在向客户端发送消息:

public class ChatHub : Hub
{
    public void Send(string name, string message)
    {
        Clients.All.addNewMessageToPage(name, message);
    }
}

如何调用 Send 函数将消息从another controller 广播到所有客户端?

我试过这个:

[HttpPost]
public void Post(Chat chat)
{
    var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
    hubContext.Clients.All.Send(chat.Name, chat.Message);
}

【问题讨论】:

  • 应该可以。有没有设置断点看是否被调用?

标签: c# asp.net-mvc-4 signalr


【解决方案1】:

您需要在您的 Post 操作方法中调用 addNewMessageToPage

var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
hubContext.Clients.All.addNewMessageToPage(chat.Name, chat.Message);

然后在你的JS文件中:

var chatHub = $.connection.chatHub;

chatHub.client.addNewMessageToPage= function (name, message) {
    //Add name and message to the page here
};
$.connection.hub.start();

【讨论】:

    猜你喜欢
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    相关资源
    最近更新 更多