2012-11-28 50 views
7

我下面就得到一个SignalR项目这个快速教程开始,在我中心上课,我有以下SignalR演示不工作

using Microsoft.AspNet.SignalR.Hubs; 

namespace MvcApplication8.Hubs 
{ 
    public class ChatHub : Hub 
    { 
     public void BroadcastMessage(string message) 
     { 
      Clients.writeMessage(message); 
     } 
    } 
} 

客户端代码:

​​

不过我得到编译时错误说:

'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext'不包含 'writeMessage'的定义并且没有扩展方法'writeMessage' 接受 类型的第一个参数可以找到'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext' (你是否缺少使用指令或程序集引用?)

哪里出错了?

我使用包管理器控制台安装SignalR到我的项目从http://nuget.org/packages/microsoft.aspnet.signalr “安装,包Microsoft.AspNet.SignalR - 售前”

+0

我已经编辑我的帖子,包括实际的消息 哇,一票仅下跌是什么?告诉我这足够了。 我得到一个编译时错误,我真的需要明确地问:“我如何摆脱编译时错误?” –

回答

1

你创建相应的客户端功能?

<script type="text/javascript"> 
    $(function() { 
     var chat = $.connection.chat; 
     chat.writeMessage = function (message) { 
      $('#messages').append('<li>' + message + '</li>'); 
     }; 
     $.connection.hub.start(); 
    }); 
</script> 
+0

是的,我用我的客户代码更新了我的主帖 –

1

检查,如果你已经安装了以下软件包:

  • Microsoft.AspNet.SignalR
  • Microsoft.AspNet.SignalR.Core
  • Microsoft.AspNet.SignalR.Hosting.AspNet
  • Microsoft.AspNet.SignalR.Hosting.Common
0

尝试更新NuGet包。工具> NuGet软件包管理器>管理NuGet软件包的解决方案,在窗口的左侧单击“更新”,在窗口的中心部分获取要更新的软件包列表,然后在软件包上单击“安装”获取最新版本。我更新所有:JQuery,Json.NET,Microsoft ASP.NET SignalR,Microsoft.Owin

在将软件包更新到最新版本(SignalR Currently 2.2.0)后,您可以编译。不要忘在“StockTicker.html”更新引用,在更新后,我的情况下,这个样子:

<script src="/Scripts/jquery-2.1.4.min.js"></script> 
<script src="/Scripts/jquery.signalR-2.2.0.js"></script>