Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 信号器错误:信号器(…)。正在启动(…)。发送不是一个函数_Javascript_C#_Asp.net Mvc 4_Signalr - Fatal编程技术网

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

我正在学习从旁边链接实现信号器的基础知识。就像教程建议的那样,我已经实现了一个演示应用程序,但我无法解决以下错误

未捕获类型错误:信号器(…)。正在启动(…)。发送不是 作用

这就是我迄今为止所尝试的

先决条件:

  • Microsoft.AspNet.signal
  • 信号器
  • 集线器

    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

    • Microsoft.AspNet.signal
    • Microsoft.Owin
    • Microsoft.Owin.Security
    • Microsoft.Owin.Host.SystemWeb

    • Rest过程与教程建议创建owin启动类和hub类的过程相同。做了这么多,应用程序工作得很好,就像教程中提到的那样。我注意到的是project signalr自动生成的javascript不同,我想这是因为之前我不必要地安装了WebAPIDoodle.signalrdll,这给了我一个不同的javascript

      您不应该使用“sending”,而应该使用“send”,因为在文件“charthub.cs”中您声明了“public void send(…)”