void ConnectThread() { try { AuthService authService = new AuthService(ConnectionData.Region.LoginQueueURL, ConnectionData.Proxy.LoginQueueProxy); // Get an Auth token (Dumb, assumes no queueing, blocks) AuthResponse = authService.Authenticate(ConnectionData.User, ConnectionData.Password); } catch (WebException exception) { ConnectCallback(new RPCConnectResult(exception)); return; } // Initialise our RTMPS connection RPCNetConnection = new NetConnection(); RPCNetConnection.Proxy = ConnectionData.Proxy.RTMPProxy; // We should use AMF3 to behave as closely to the client as possible. RPCNetConnection.ObjectEncoding = ObjectEncoding.AMF3; // Setup handlers for different network events. RPCNetConnection.OnConnect += new ConnectHandler(NetConnectionOnConnect); RPCNetConnection.OnDisconnect += new DisconnectHandler(NetConnectionOnDisconnect); RPCNetConnection.NetStatus += new NetStatusHandler(NetConnectionNetStatus); // Connect to the RTMPS server RPCNetConnection.Connect(ConnectionData.Region.RPCURL); }