1

「ハブ外からハブ経由でブロードキャストする」に従っていますが、クライアント ブラウザーにメッセージが表示されません。エラーもありません。hubContext をプルしてメッセージを送信するときに、signalR が私のブラウザーを認識していないようです。

ただし、クライアントからハブに呼び出す場合、私のハブは期待どおりに動作します。

私のハブ:

[HubName("myHub")]
public class MyHub : Hub
{        
    public void SaySomething(string message)
    {
        Clients.say(message);
    }

    public void SayHelloWorld()
    {
        Clients.say("hello world");
    }

}

サーバー内の他の場所と時間からのコード:

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.say(message);

そして私のクライアントスクリプト:

<script src="Scripts/jquery.signalR-0.5.3.js" type="text/javascript" > </script>
<script src="signalr/hubs"> </script>   

<script type="text/javascript">
    var hub = $.connection.myHub;

    $.extend(hub, {
        Say: function(message) {
            alert(message); //this only works when the sayHelloWorld() method is executed
        }
    });

    $.connection.hub.start()
        .done(function(){
            hub.sayHelloWorld(); //this works
        });
</script>
4

1 に答える 1

0

最新の nuget パッケージ (v 1.0.1) を使用している場合は、次を試してください。

$.extend(hub.client, {
        say: function(message) {
            alert(message); //this only works when the sayHelloWorld() method is executed
        }

と:

$.connection.hub.start()
        .done(function(){
            hub.server.sayHelloWorld(); //this works
        });

SignalR は、ハブのクライアントとサーバーのプロパティを定義しました。私はビデオから MoveShape サンプルを試していましたが、同じ問題に直面しました。

それが役に立てば幸い、

于 2013-04-04T06:27:40.487 に答える