Asp.net mvc 信号员不工作
我正试着和信号员做些事情。 我的中心是Asp.net mvc 信号员不工作,asp.net-mvc,signalr,Asp.net Mvc,Signalr,我正试着和信号员做些事情。 我的中心是 public class Customer : SignalR.Hubs.Hub { public void Send(string uid, string from, string msg) { string make = from + uid; Clients.Addmsg(msg, make); } } 客户端代码是 <script src="Scripts/jquery-1.6.4
public class Customer : SignalR.Hubs.Hub
{
public void Send(string uid, string from, string msg)
{
string make = from + uid;
Clients.Addmsg(msg, make);
}
}
客户端代码是
<script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.signalR-0.5.3.min.js" type="text/javascript"></script>
<script src="/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(function () {
// Proxy created on the fly
var care = $.connection.Customer;
$("#broadcast").click(function () {
// Call the chat method on the server
care.send($('#msg').val(), "HariOm", "jai jai ram")
.done(function () {
console.log('Success!');
})
.fail(function (e) {
console.warn(e);
});
});
// Declare a function on the chat hub so the server can invoke it
care.Addmsg = function (message, make) {
alert(message + msg);
};
// Start the connection
$.connection.hub.start();
});
</script>
我在加载页面后遇到此错误
未捕获的TypeError:无法设置未定义的属性“Addmsg”您的问题是客户端上的集线器名称应为小写,因为代理生成以驼峰形式生成集线器名称。因此,您的代理应该如下所示:
var care = $.connection.customer;
这就是为什么您会得到一个错误,即您的care对象未定义。这在页面上有记录。另外,如果您在浏览器中查看生成的/signalr/hubs页面,您将看到hub及其定义的方法。您的问题是客户端上的hub名称应为小写,因为代理生成以驼峰形式生成hub名称。因此,您的代理应该如下所示:
var care = $.connection.customer;
这就是为什么您会得到一个错误,即您的care对象未定义。这在页面上有记录。此外,如果您在浏览器中查看生成的/signalr/hubs页面,您将看到hub及其定义的方法。使用小写hub名称进行尝试:例如var care=$.connection.customer;尝试使用小写的hub名称:例如var care=$.connection.customer;参数名称也应该与它们在中心中声明的名称相同?大多数示例显示使用相同的参数名称,但只要它们是相同的类型,它们就应该工作。但我不能确定。@PaigeCook我也对hub类的大写字母有问题,感谢您的解释。参数名称也应该与它们在hub中声明的名称相同?大多数示例显示使用相同的参数名称,但只要它们是相同的类型,它们就可以工作。“但我不能肯定地说。”PaigeCook我对hub类的大写字母也有问题,谢谢你的解释