【发布时间】:2013-07-31 15:54:07
【问题描述】:
所以我在 1 个集线器中有 2 种方法:
public class ChatHub : Hub
{
public void SendMessage(string name, string message)
{
Clients.All.AddMessage(name, message);
}
public void SendAnnounce(string name)
{
Clients.Others.AddMessage(name);
}
}
如何在客户端 javascript 的 1 个集线器中正确使用 2 种方法?
我在 javascript 中有这个,
对于 SendMessage(string name, string message) hub 方法:
var message = $("#txtMessage").val();
var userid = $("#lblUsername").html();
chat.client.addMessage = function (frm, msg) {
$messages.append("[" + frm + "] " + msg);
}
调用:
chat.server.sendMessage(userid, input);
对于 SendAnnounce(string name) hub 方法:
chat.client.addMessage = function (frm) {
$announcement.append("<div>test</div>");
}
调用:
var userid = $("#txtUsername").val();
chat.server.announcement(userid);
但它不起作用(服务器只是使用我的案例公告中的最后一种方法)。
只有当我制作 2 个集线器并将每种方法放在不同的集线器中时它才有效,然后为每个集线器创建不同的变量,如下所示:
//Create Hub on Air
var chat = $.connection.chatHub;
var chat2 = $.connection.announcementHub;
然后使用带有“chat”变量的 1 种方法和带有“chat2”变量的第二种方法。然后它就可以工作了。像这样:
chat.client.addMessage = function (frm, msg) {
$messages.append("[" + frm + "] " + msg);
}
chat2.client.addMessage = function (frm) {
$announcement.append("<div> test</div>");
});
}
我不明白什么?
【问题讨论】: