Javascript 信号器错误:信号器(…)。正在启动(…)。发送不是一个函数
我正在学习从旁边链接实现信号器的基础知识。就像教程建议的那样,我已经实现了一个演示应用程序,但我无法解决以下错误 未捕获类型错误:信号器(…)。正在启动(…)。发送不是 作用 这就是我迄今为止所尝试的 先决条件:Javascript 信号器错误:信号器(…)。正在启动(…)。发送不是一个函数,javascript,c#,asp.net-mvc-4,signalr,Javascript,C#,Asp.net Mvc 4,Signalr,我正在学习从旁边链接实现信号器的基础知识。就像教程建议的那样,我已经实现了一个演示应用程序,但我无法解决以下错误 未捕获类型错误:信号器(…)。正在启动(…)。发送不是 作用 这就是我迄今为止所尝试的 先决条件: Microsoft.AspNet.signal 信号器 集线器 namespace SignalRChat.Hubs { public class ChatHub : Hub { public void Send( string name
namespace SignalRChat.Hubs
{
public class ChatHub : Hub
{
public void Send( string name, string message )
{
Clients.All.addNewMessageToPage( name, message );
}
}
}
Owin启动时
[assembly: OwinStartup( typeof( SignalRChat.Startup ) )]
namespace SignalRChat
{
public class Startup
{
public void Configuration( IAppBuilder app )
{
app.MapSignalR();
}
}
}
控制器
public ActionResult Chat()
{
return View();
}
查看(聊天)
@{
ViewBag.Title=“聊天”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
聊天
@节脚本{
@**@
$(函数(){
var connection=$.connection('/echo');
控制台日志(连接);
//为中心引用自动生成的代理。
var chat=$.connection.chatHub;
//创建一个中心可以回调以显示消息的函数。
chat.client.addNewMessageToPage=函数(名称、消息){
//将消息添加到页面。
$(“#讨论”)。追加(“”+htmlEncode(名称)
+“:”+htmlEncode(消息)+“ ”);
};
//获取用户名并将其存储到消息前。
$('#displayname').val(提示('输入您的姓名:','');
//将初始焦点设置为消息输入框。
$(“#消息”).focus();
//启动连接。
$.connection.hub.start().done(函数(){
$('#sendmessage')。单击(函数(){
//在集线器上调用Send方法。
chat.server.send($('#displayname').val(),$('#message').val());
//清除文本框并重置下一条注释的焦点。
$('#message').val('.focus();
});
});
});
//此可选函数用于对页面中显示的消息进行html编码。
函数htmlEncode(值){
var encodedValue=$('').text(value.html();
返回编码值;
}
}
我无法解决以下错误。因为我已经安装了所有必需的文件并使用了最新的Jquery,所以这里有什么我遗漏的吗。我尝试使用较低版本的信号器,但仍然存在相同的问题
这里是开发人员控制台的快照和错误列表
错误来源
public ActionResult Chat()
{
return View();
}
我终于解决了我在问题中提到的例外情况。实际上,我安装了不必要的WebAPIDoodle.signaldll。我已经放弃了这个项目,并开始了一个新的项目一旦新的项目设置完成,我去了包控制台管理器,并一个接一个更新以下dll
Rest过程与教程建议创建owin启动类和hub类的过程相同。做了这么多,应用程序工作得很好,就像教程中提到的那样。我注意到的是project signalr自动生成的javascript不同,我想这是因为之前我不必要地安装了WebAPIDoodle.signalrdll,这给了我一个不同的javascript 您不应该使用“sending”,而应该使用“send”,因为在文件“charthub.cs”中您声明了“public void send(…)”