私はMVC3とsignalrで本当に奇妙な問題を抱えています。私は単純なハブを持っています。MVC3のSignalR、タイミングと開始/接続の問題?
[HubName("test")]
public class Test: Hub
{
public object GetStuff()
{
return new { dummy = "Test" };
}
}
一部のクライアントサイドコード。
var connection = $.connection.test;
connection.start();
connection.getStuff();
これはエラーをスローします。
はTypeError:オブジェクト#は、私が代わりに
var connection = $.connection("test");
をすれば、私は別のエラーを取得するいかなる方法 'スタート'
を持っていません。
はTypeError:オブジェクト#は何のメソッド 'getStuff' jqueryの-1.6.4.min.jsを持っていません:4
POST http://localhost:63021/Controller/test/negotiate 405(メソッド許可されていません)
はその交渉しようとしています何らかの理由でコントローラの下に?
私は登録する必要があり、いくつかの特定のルートはありますか?私が知っていない他の魔法?
UPDATEだから、コンソールで少し遊ん - 最初のバージョンは、実際に私が呼び出すことができるgetStuffを持つオブジェクトを()を作成しないし。しかし、私はstart()を最初に呼び出さなければならないのでシグナルがスローアップします - 存在しません!もう一つは、スタートを()持っているオブジェクトを作成しますが、それはgetStuff()。2 は$ .connection.hub.start代わりをやってみました
UPDATEを持っているdoesntの。これは、コンソールでは動作しているようですが、ページのロードではありません。おそらくハブの呼び出しが行われる前にisntが終了していますか?それは非同期ですか? SignalRの接続を開始
を確かに言うことはできません - それはあなたの第二の場合の 'GetStuff'対大文字と小文字を区別' getStuff'かもしれません。 – vcsjones
いずれも動作せず、ネゴシエートURLは404が存在する(ハブはルートにある)ので、404を返します。 – XeroxDucati