SignalR演示不起作用

时间:2012-11-28 14:10:31

标签: c# asp.net-mvc nuget signalr

我正在关注启动SignalR项目的快速教程,在我的Hub类中,我有以下内容

using Microsoft.AspNet.SignalR.Hubs;

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

客户代码:

    $(document).ready(function () {
        var chat = $.connection.chatHub;
        chat.writeMessage = function(msg) {
            $("#messages").append("<li>" + msg + "</li>");
        };
        $("#buttonSubmit").click(function () {
            chat.broadcastMessage($("#txtInput").val());
        });
        $.connection.hub.start();
    }); 

但是我收到编译时错误说:

  

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

出了什么问题?

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

3 个答案:

答案 0 :(得分:1)

您是否创建了相应的客户端功能?

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

答案 1 :(得分:1)

检查您是否安装了以下软件包:

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

答案 2 :(得分:0)

尝试更新NuGet包。工具&gt; NuGet包管理器&gt;管理NuGet Packages for Solution,在窗口的左侧部分单击“更新”,在Windows的中央部分,您将获得要更新的软件包列表,然后在软件包上单击“安装”,您是否希望获得最新版本。我更新了所有: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>