我一直在阅读文档中的这篇文章:
它说,我可以像这样从客户端向服务器发送消息:
$.connection.hub.start().done(function () {
$('#sendmessage').click(function () {
// Call the Send method on the hub.
chat.server.send($('#displayname').val(), $('#message').val());
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
});
但是,如何从服务器向客户端发送消息?
我第一次按照本教程http://www.codemag.com/Article/1210071解释说我只需要这样做:
SendMessage("Index action invoked.");
将SendMessage()
定义为:
private void SendMessage(string message)
{
GlobalHost.ConnectionManager.GetHubContext<NotificationHub>().Clients.All.sendMessage(message);
}
但是,这不起作用。在我的客户端,我的错误是:
对象#没有方法&#39;激活&#39;
我使用的客户端代码是:
$.connection.hub.start(function () {
notificationHub.activate(function (response) {
/*
$("#target")
.find('ul')
.append($("<li></li>").html(response));
*/
console.log(response);
});
});
所以,问题是,如何从服务器向客户端发送简单消息?
有人能告诉我一个如何做到这一点的完整示例吗?我已经看过文档中的股票代码示例,但它很难理解/应用。
答案 0 :(得分:3)
根据我的理解,你在客户端调用一个名为sendMessage的函数
private void SendMessage(string message)
{
GlobalHost.ConnectionManager.GetHubContext<NotificationHub>().Clients.All.sendMessage(message);
}
但是,我没有在客户端看到此功能的定义。相反,您已经定义了一个名为activate()的函数。另外,从我的工作代码中,我已经定义了这样的客户端功能。
var hub = $.connection.notificationHub;
hub.client.sendMessage= function (data) {
//some logic here
}