1

私のiOSアプリを統合して、ローカルネットワーク上の開発サーバーにセットアップしたMVC3(フレームワーク4)SignalRプログラムと連携させようとしています。このために作成されたWebサイトは、ネットワーク全体で正常に機能します。

ただし、SignalR iOSクライアントを使用しようとすると、次のエラーが発生します。

    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Incompatible Protocol Version'

SRConnection.m内でNSLog()を使用した後、アプリがネゴシエーションを行っているときに正常にネゴシエートしているが、connectionIdまたはプロトコルバージョンを取得していない場合、これらはnullを返すことがわかりました。

    negotiation was successful NegotiationResponse: ConnectionId=(null) Url=/signalr/signalr ProtocolVersion=(null)

appDelegateのapplication:didFinishLaunchingWithOptions:関数で接続を設定しています。これが私が接続を設定する方法です:

    SRHubConnection *connection = [SRHubConnection connectionWithURL:
                               @"http://mark-dev"];
    myHub = [connection createProxy:@"ChatHub"];
    [connection start];

サーバーの接続ログも確認しました。リクエストを受信し、毎回200のステータスコードを返します。

私が使用している接続コードは、http://chrisrisner.com/iOS-and-Windows-Azure-Communication-using-SignalRから取得しました。

例でURLとハブ名を使用してみましたが、次のようなconnectionIdとプロトコルバージョンで問題なくネゴシエートします。

    negotiation was successful NegotiationResponse: ConnectionId=48a6fcca-429f-4d3e-b374-8f10d6889fe0 Url=/signalr/signalr ProtocolVersion=1.0

これはすべて、iOS5.1の展開ターゲットを持つiOSsdk6のiPadシミュレーターにも含まれています。

これに関するどんな助けも素晴らしいでしょう

乾杯

4

1 に答える 1

1

SignalRNuGetがダウンロードされなかった何らかの理由で参照をSignalR.Hosting.AspNet含めていたにもかかわらず、SignalR.Hosting.Commonこれらを手動で追加した後、正常に機能したことが判明しました。

別のプロジェクトで試してみたところ、完全にダウンロードされたので、不完全なダウンロードはまぐれだったに違いありません。

于 2012-10-31T11:44:35.777 に答える