1

我正在尝试将我的 iOS 应用程序集成到我们在本地网络上的开发服务器上设置的 MVC3(框架 4)SignalR 程序。为此创建的网站在我们的网络中运行良好。

但是,当尝试使用 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)

我正在应用程序中设置连接:didFinishLaunchingWithOptions:appDelegate 的功能。这就是我设置连接的方式:

    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 和 hub 名称,并且可以与 connectionId 和协议版本协商,如下所示:

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

这也在 iOS sdk6 上的 iPad Simulator 中,部署目标为 iOS 5.1

对此的任何帮助都会很棒

干杯

4

1 回答 1

1

事实证明,尽管我出于某种原因包含SignalR了 NuGet 没有下载的参考SignalR.Hosting.AspNetSignalR.Hosting.Common并且在手动添加这些之后它工作正常。

不完整的下载一定是侥幸,因为我在另一个项目上尝试过它并完全下载。

于 2012-10-31T11:44:35.777 回答