2

javascript ライブラリを使用して、コンソール アプリでホストされている signalR サーバーに接続しています。

したがって、サーバーから呼び出すことができるクライアントメソッドを次のように接続して設定します。

var connection = $.hubConnection('http://localhost:8080'),
    proxy = connection.createHubProxy('TestApp');

proxy.on('sendMessage', function () {
    // do stuff!
});

ここで詳しく説明します。

ただし、この方法でクライアント側の JavaScript を使用するためのドキュメントには、情報を往復する方法 (クライアント側で「状態」変数を設定し、サーバーからアクセスできるようにする方法) が説明されていません。

おそらくかなり明白ですが、どんな助けでも大歓迎です!

また、密接に関連していると思われるもので気になるものがあります。サーバー上で関数を呼び出した後、クライアント側のコードが戻り値/コールバックを取得できることを私は知っています(上記のリンクのドキュメントから)

proxy.invoke('add', 1, 2)
     .done(function(result) {
         console.log('The result is ' + result);
     });

しかし、クライアントがタスクを終了したときに、サーバーがクライアントからコールバックを取得することは可能ですか? (明らかに、定義済みのイベントをクライアントにトリガーさせるだけでこの問題は解決しますが、可能であれば、別のイベントを設定することなくすべてのコールバックを処理できると便利です。)

ありがとう!!

4

1 に答える 1

3

1) 状態を設定するには、次のように簡単です。

proxy.state.foo = 1337;

もちろん、これをサーバーで取得できます

int myFoo = Clients.Caller.foo;

2) いいえ、クライアント側の関数の実行が終了したときに、サーバーで通知を受けることはできません。クライアント側の関数がいつ終了したかを知りたい場合は、自分でサーバーにコールバックするだけです。

例えば:

proxy.on('foo', function(){
    console.log("Foo executed");
    proxy.invoke("fooDone");
});

次に、コールバックを処理するためにサーバー上に「fooDone」関数を作成する必要があります。

お役に立てれば!

于 2013-04-12T18:46:06.313 に答える