void StartHeartbeat(bool pause, int pauseTime) { try { if (!this.PubNubInstance.PNConfig.ReconnectionPolicy.Equals(PNReconnectionPolicy.NONE)) { isHearbeatRunning = true; Uri request = BuildRequests.BuildTimeRequest( this.PubNubInstance ); RequestState requestState = new RequestState(); requestState.OperationType = PNOperationType.PNHeartbeatOperation; requestState.URL = request.OriginalString; requestState.Timeout = PubNubInstance.PNConfig.NonSubscribeTimeout; requestState.Pause = pauseTime; requestState.Reconnect = pause; #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("heartbeat: request.OriginalString {0} ", request.OriginalString), PNLoggingMethod.LevelInfo); #endif webRequestId = webRequest.Run(requestState); #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("StartHeartbeat: Heartbeat running"), PNLoggingMethod.LevelInfo); #endif } } catch (Exception ex) { #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("StartHeartbeat: Heartbeat exception {0}", ex.ToString()), PNLoggingMethod.LevelError); #endif } }
public void RunWebRequest(RequestState requestState, PubNubNonSubBuilder <U, V> pnBuilder) { try{ PNBuilder = pnBuilder; webRequestId = webRequest.Run(requestState); } catch (Exception ex) { #if (ENABLE_PUBNUB_LOGGING) this.queueManager.PubNubInstance.PNLog.WriteToLog(string.Format("ex.ToString() {0}", ex.ToString()), PNLoggingMethod.LevelInfo); #endif } }
void StartPresenceHeartbeat(bool pause, int pauseTime) { try { if (PubNubInstance.SubscriptionInstance.AllNonPresenceChannelsOrChannelGroups.Count > 0) { isPresenceHearbeatRunning = true; string channelsJsonState = PubNubInstance.SubscriptionInstance.CompiledUserState; Uri request = BuildRequests.BuildPresenceHeartbeatRequest( Helpers.GetNamesFromChannelEntities(PubNubInstance.SubscriptionInstance.AllNonPresenceChannelsOrChannelGroups, false), Helpers.GetNamesFromChannelEntities(PubNubInstance.SubscriptionInstance.AllNonPresenceChannelsOrChannelGroups, true), channelsJsonState, this.PubNubInstance ); RequestState requestState = new RequestState(); requestState.OperationType = PNOperationType.PNPresenceHeartbeatOperation; requestState.URL = request.OriginalString; requestState.Timeout = PubNubInstance.PNConfig.NonSubscribeTimeout; requestState.Pause = pauseTime; requestState.Reconnect = pause; #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("presenceheartbeat: request.OriginalString {0} ", request.OriginalString), PNLoggingMethod.LevelError); #endif webRequestId = webRequest.Run(requestState); #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("StartPresenceHeartbeat: PresenceHeartbeat running "), PNLoggingMethod.LevelInfo); #endif } } catch (Exception ex) { #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("StartPresenceHeartbeat: PresenceHeartbeat exception {0}", ex.ToString()), PNLoggingMethod.LevelError); #endif } }
void StartPresenceHeartbeat(bool pause, int pauseTime) { try { string channelsJsonState; int allNonPresenceChannelsOrChannelGroupsCount; string channels; string channelGroups; if (RunIndependentOfSubscribe) { channelsJsonState = State; allNonPresenceChannelsOrChannelGroupsCount = ((ChannelGroups.Length > 0)?ChannelGroups.Split(',').Count():0) + ((Channels.Length > 0)?Channels.Split(',').Count():0); Debug.Log("allNonPresenceChannelsOrChannelGroupsCount:" + allNonPresenceChannelsOrChannelGroupsCount); channels = Channels; channelGroups = ChannelGroups; } else { channelsJsonState = PubNubInstance.SubscriptionInstance.CompiledUserState; allNonPresenceChannelsOrChannelGroupsCount = PubNubInstance.SubscriptionInstance.AllNonPresenceChannelsOrChannelGroups.Count; channels = Helpers.GetNamesFromChannelEntities(PubNubInstance.SubscriptionInstance.AllNonPresenceChannelsOrChannelGroups, false); channelGroups = Helpers.GetNamesFromChannelEntities(PubNubInstance.SubscriptionInstance.AllNonPresenceChannelsOrChannelGroups, true); } if (allNonPresenceChannelsOrChannelGroupsCount > 0) { isPresenceHearbeatRunning = true; Uri request = BuildRequests.BuildPresenceHeartbeatRequest( channels, channelGroups, channelsJsonState, this.PubNubInstance, null ); RequestState requestState = new RequestState(); requestState.OperationType = PNOperationType.PNPresenceHeartbeatOperation; requestState.URL = request.OriginalString; requestState.Timeout = PubNubInstance.PNConfig.NonSubscribeTimeout; requestState.Pause = pauseTime; requestState.Reconnect = pause; #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("presenceheartbeat: /presence/ request.OriginalString {0} ", request.OriginalString), PNLoggingMethod.LevelError); #endif webRequestId = webRequest.Run(requestState); #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("StartPresenceHeartbeat: PresenceHeartbeat running, {0} ", pauseTime), PNLoggingMethod.LevelInfo); #endif } #if (ENABLE_PUBNUB_LOGGING) else { this.PubNubInstance.PNLog.WriteToLog(string.Format("StartPresenceHeartbeat: AllNonPresenceChannelsOrChannelGroups < 0 "), PNLoggingMethod.LevelInfo); } #endif } catch (Exception ex) { #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("StartPresenceHeartbeat: PresenceHeartbeat exception {0}", ex.ToString()), PNLoggingMethod.LevelError); #endif } }
private void RunSubscribeRequest(long timetoken, bool reconnect) { //Exit if the channel is unsubscribed #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog("in RunSubscribeRequest", PNLoggingMethod.LevelInfo); #endif if (CheckAllChannelsAreUnsubscribed()) { #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog("All channels unsubscribed", PNLoggingMethod.LevelInfo); #endif return; } List <ChannelEntity> channelEntities = PubNubInstance.SubscriptionInstance.AllSubscribedChannelsAndChannelGroups; // Begin recursive subscribe try { long lastTimetoken = SaveLastTimetoken(timetoken); hbWorker.RunHeartbeat(false, hbWorker.HeartbeatInterval); #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("RunRequests: Heartbeat started"), PNLoggingMethod.LevelInfo); #endif RequestSentAt = DateTime.UtcNow.Second; if (PubNubInstance.PNConfig.PresenceInterval > 0) { PHBWorker.RunPresenceHeartbeat(false, PubNubInstance.PNConfig.PresenceInterval); } #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("MultiChannelSubscribeRequest: Building request for {0} with timetoken={1}", Helpers.GetAllNamesFromChannelEntities(channelEntities, true), lastTimetoken), PNLoggingMethod.LevelInfo); #endif // Build URL string channelsJsonState = PubNubInstance.SubscriptionInstance.CompiledUserState; string channels = Helpers.GetNamesFromChannelEntities(channelEntities, false); string channelGroups = Helpers.GetNamesFromChannelEntities(channelEntities, true); //v2 string filterExpr = (!string.IsNullOrEmpty(this.PubNubInstance.PNConfig.FilterExpression)) ? this.PubNubInstance.PNConfig.FilterExpression : string.Empty; Uri requestUrl = BuildRequests.BuildSubscribeRequest( channels, channelGroups, lastTimetoken.ToString(), channelsJsonState, region, filterExpr, this.PubNubInstance, this.QueryParams ); #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("RunSubscribeRequest: {0}", requestUrl.OriginalString), PNLoggingMethod.LevelError); #endif RequestState requestState = new RequestState(); requestState.OperationType = PNOperationType.PNSubscribeOperation; requestState.URL = requestUrl.OriginalString; requestState.Timeout = PubNubInstance.PNConfig.SubscribeTimeout; requestState.Pause = 0; requestState.Reconnect = reconnect; //http://ps.pndsn.com/v2/presence/sub-key/sub-c-5c4fdcc6-c040-11e5-a316-0619f8945a4f/uuid/UUID_WhereNow?pnsdk=PubNub-Go%2F3.14.0&uuid=UUID_WhereNow webRequestId = webRequest.Run(requestState); } catch (Exception ex) { #if (ENABLE_PUBNUB_LOGGING) this.PubNubInstance.PNLog.WriteToLog(string.Format("MultiChannelSubscribeRequest: method:_subscribe \n channel={0} \n timetoken={1} \n Exception Details={2}", Helpers.GetAllNamesFromChannelEntities(channelEntities, true), timetoken.ToString(), ex.ToString()), PNLoggingMethod.LevelError); #endif this.RunSubscribeRequest(timetoken, false); } }