0

最新バージョンの SignalR (1.0.1) を使用しています。コントローラーからハブにブロードキャストしようとしていますが、いくつかの問題があります。

  1. クライアントがメッセージを受け取っていないようです。
  2. 私のハブ コンテキストには「addMessage」が定義されているようにも見えません。

私のハブ:

public class SignalRPriceHub : Hub
{
    public void sndMessage(string msg)
    {
        Clients.All.addMessage(msg + "****");
    }
}

Javascript クライアント:

<script src="@Url.Content("~/Scripts/jquery.signalR-1.0.1.min.js")"></script>
<script src="~/signalr/hubs"></script>
.....
var myHub = $.connection.signalRPriceHub;
myHub.client.addMessage = function (message) {
    alert(message);
};

コントローラ:

var context = GlobalHost.ConnectionManager.GetHubContext<SignalRPriceHub>();
context.Clients.All.addMessage("TestOutsideMessage!!!");

1. ハブ コンテキストに 'addMessage' がないようです {"'Microsoft.AspNet.SignalR.Hubs.ClientProxy' には 'addMessage' の定義が含まれていません"} System.Exception {Microsoft .CSharp.RuntimeBinder.RuntimeBinderException}

  1. 上記のクライアント コードと同じファイルから次のコードを実行すると、メッセージが表示されます。

    var myHub = $.connection.signalRPriceHub; $.connection.hub.start(function () { myHub.server.sndMessage("Hello World!"); });

何が起こっているのかについて、誰かが光を当てることができますか? 皆さんありがとう!

4

1 に答える 1