私はMVC3とSignalerで本当に奇妙な問題を抱えています。私は単純なハブを持っています。
[HubName("test")]
public class Test: Hub
{
public object GetStuff()
{
return new { dummy = "Test" };
}
}
そして、いくつかのクライアント側のコード。
var connection = $.connection.test;
connection.start();
connection.getStuff();
これはエラーをスローします。
TypeError:オブジェクト#にはメソッド'start'がありません
私が代わりにやるなら
var connection = $.connection("test");
別のエラーが発生します。
TypeError:オブジェクト#にはメソッドがありません'getStuff' jquery-1.6.4.min.js:4
POST http:// localhost:63021 / Controller / test / negotiate 405(メソッドは許可されていません)
何らかの理由でコントローラーの下でネゴシエートしようとしていることに注意してください。
登録する必要のある特定のルートはありますか?私が知らない他の魔法?
更新 だから、コンソールで少し遊んでください-最初のバージョンは実際に私が呼び出すことができるgetStuff()を持つオブジェクトを作成します。しかし、最初にstart()を呼び出さなければならないため、Signalrがスローされます-これは存在しません!2つ目は、start()を持っているが、getStuff()を持っていないオブジェクトを作成します。
UPDATE2 代わりに$.connection.hub.startを実行してみました。これはコンソールでは機能するようですが、ページのオンロードでは機能しません。ハブ呼び出しが行われる前に開始が終了していない可能性がありますか?非同期ですか?