我将使用SignalR-ObjC客户端在我的IOS应用程序和.Net服务器之间提供通信。
我可以连接长轮询,从自托管跨域服务器调用方法而不出现任何错误。但是由于我的应用程序需要,我必须使用WebSocket。我有一个类似单例管理器的东西:
我可以连接长轮询,从自托管跨域服务器调用方法而不出现任何错误。但是由于我的应用程序需要,我必须使用WebSocket。我有一个类似单例管理器的东西:
@implementation SignalRManager
static int reconnectingTry;
+ (id)sharedManager {
static SignalRManager *sharedHttpManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedHttpManager = [[self alloc] init];
sharedHttpManager.hubConnection = [SRHubConnection connectionWithURL:@"http://xxx:8080/signalr"];
sharedHttpManager.proxy = [sharedHttpManager.hubConnection createHubProxy:@"myhub"];
});
return sharedHttpManager;
}
+(SRHubProxy *)proxy
{
return [[SignalRManager sharedManager] proxy];
}
+(SRHubConnection *)connection
{
return [[SignalRManager sharedManager] hubConnection];
}
+(void)start
{
SRWebSocketTransport *transport = [[SRWebSocketTransport alloc] init];
[[SignalRManager connection] start:transport];
}
+(void)stop
{
[[SignalRManager connection] stop];
}
我要调用的方式如下:
[[SignalRManager proxy] invoke:@"Hello" withArgs:[NSArray array]];
我已建立连接,服务器可以调用客户端方法,但当我尝试从客户端调用服务器方法时,出现“请求失败:错误的请求(400)”错误。