Example #1
0
// ParseSubscribeResponseAndCallUnsubscribe will parse the response on the go channel.
// It will check the subscribe connection status and when connected
// it will initiate the unsubscribe request.
func ParseSubscribeResponseAndCallUnsubscribe(pubnubInstance *messaging.Pubnub, returnChannel chan []byte, channel string, message string, responseChannel chan string) {
	for {
		value, ok := <-returnChannel
		if !ok {
			break
		}
		if string(value) != "[]" {
			response := fmt.Sprintf("%s", value)
			message = "'" + channel + "' " + message
			//messageAbort := "'" + channel + "' aborted"
			//fmt.Printf("response:",response);
			//fmt.Printf("message:", message);

			if strings.Contains(response, message) {
				returnUnsubscribeChannel := make(chan []byte)
				errorChannel := make(chan []byte)

				go pubnubInstance.Unsubscribe(channel, returnUnsubscribeChannel, errorChannel)
				go ParseUnsubscribeResponse(returnUnsubscribeChannel, channel, "unsubscribed", responseChannel)
				go ParseResponseDummy(errorChannel)

				break
			} /*else if (strings.Contains(response, messageAbort)){
			      responseChannel <- "Test unsubscribed: failed."
			      break
			  } else {
			      responseChannel <- "Test unsubscribed: failed."
			      break
			  }*/
		}
	}
}
Example #2
0
func CommonUserState(pubnubInstance *messaging.Pubnub, t *testing.T, channel string, key string, val string, testName string) {
	returnSubscribeChannel := make(chan []byte)
	errorChannel := make(chan []byte)
	waitChannel := make(chan string)
	//returnChannel := make(chan []byte)
	responseChannel := make(chan string)

	go pubnubInstance.Subscribe(channel, "", returnSubscribeChannel, false, errorChannel)
	go ParseSubcribeResponseForUserState(pubnubInstance, t, returnSubscribeChannel, channel, key, val, testName, responseChannel)
	go ParseResponseDummy(errorChannel)
	//go ParseErrorResponse(errorChannel, responseChannel)
	go WaitForCompletion(responseChannel, waitChannel)
	ParseWaitResponse(waitChannel, t, testName)
	go pubnubInstance.Unsubscribe(channel, returnSubscribeChannel, errorChannel)
	pubnubInstance.CloseExistingConnection()
	time.Sleep(2 * time.Second)
}