7

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' の定義が含まれておらず、タイプ 'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext' の最初の引数を受け入れる拡張メソッド 'writeMessage' が見つかりませんでした (あなたはusing ディレクティブまたはアセンブリ参照がありませんか?)

どこが間違っていましたか?

パッケージ マネージャー コンソール "Install-Package Microsoft.AspNet.SignalR -Pre" を使用して、http: //nuget.org/packages/microsoft.aspnet.signalrから SignalR をプロジェクトにインストールしました。

4

3 に答える 3

1

次のパッケージがインストールされているかどうかを確認します。

  • Microsoft.AspNet.SignalR
  • Microsoft.AspNet.SignalR.Core
  • Microsoft.AspNet.SignalR.Hosting.AspNet
  • Microsoft.AspNet.SignalR.Hosting.Common
于 2012-11-28T17:59:01.513 に答える
1

対応するクライアント関数を作成しましたか?

<script type="text/javascript">
    $(function () {
        var chat = $.connection.chat;
        chat.writeMessage = function (message) {
            $('#messages').append('<li>' + message + '</li>');
        };
        $.connection.hub.start();
    });
</script>
于 2012-11-28T15:45:34.280 に答える
0

NuGet パッケージを更新してみてください。ツール > NuGet パッケージ マネージャー > ソリューションの NuGet パッケージを管理します。最新バージョンを取得します。すべてを更新します: JQuery、Json.NET、Microsoft ASP.NET SignalR、Microsoft.Owin

パッケージを最新バージョン (SignalR 現在 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>
于 2015-10-06T18:11:43.760 に答える