SIgnalR iOS Client为connectionId和协议版本返回null

时间:2012-10-24 09:09:55

标签: ios signalr signalr-hub

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

但是,在尝试使用SignalR iOS Client时,会出现以下错误:

    *** 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模拟器,部署目标为iOS 5.1

对此的任何帮助都很棒

干杯

1 个答案:

答案 0 :(得分:1)

事实证明,虽然我已经包含了SignalR参考文献,但是NuGet没有下载SignalR.Hosting.AspNetSignalR.Hosting.Common,并且在手动添加后,它工作正常。

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