/// <summary> /// Start a SearchStream /// </summary> /// <param name="textToSearch">text string to begin search</param> public void StartSearchStreaming(string textToSearch) { _twitterSearchCommunicationToken = new CancellationTokenSource(); // when the searchstream gets disconnected, revert to polling (REST) searches _searchStreamDisconnected.Where(status => status.Equals(true)).Subscribe(StartPollingSearch); _currentSearchText = textToSearch; // if (UserSession.IsActive) { SearchStream = UserSession.StartSearchStream(track: textToSearch); SearchStream.FoundTweets.Subscribe(_searchtimeline.OnNext); SearchStream.Start(); SearchStream.StreamActive.Subscribe(t => ManageSearchStreamDisconnect()); } else { // cannot get usersession, fall back _searchStreamDisconnected.OnNext(true); } // and get "backfills"; tweets that pre-date the current stream/polling connection Task.Factory.StartNew(ProcessSearchBackFill_Pump); }