最新バージョンの SignalR (1.0.1) を使用しています。コントローラーからハブにブロードキャストしようとしていますが、いくつかの問題があります。
- クライアントがメッセージを受け取っていないようです。
- 私のハブ コンテキストには「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}
上記のクライアント コードと同じファイルから次のコードを実行すると、メッセージが表示されます。
var myHub = $.connection.signalRPriceHub; $.connection.hub.start(function () { myHub.server.sndMessage("Hello World!"); });
何が起こっているのかについて、誰かが光を当てることができますか? 皆さんありがとう!