所以我在 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) 集线器方法:
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) 集线器方法:
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>");
});
}
我不明白什么?