2014-06-04 2 views
0

После моей первой записи в гнездо APNS закрывает соединение! Первое уведомление отправляется отлично, но второе не удается из-за EOF.APNS закрывающее соединение после первой записи

Я приложил небольшой фрагмент кода для отправки уведомления. Дайте мне знать, если я включу больше. Спасибо за помощь!

func (notificationService *NotificationService) Send(deviceToken []byte, payload *Payload, expiration time.Time, priority int) (uint32, error) { 
    apnsBinary, err := createApnsBinary(deviceToken, payload, notificationIdentifier, expiration, priority) 
    if err != nil { 
     return 0, err 
    } 

    _, err = notificationService.connection.Write(apnsBinary) 
    if err != nil { 
     return 0, err 
    } 

    responseBytes := make([]byte, 6, 6) 
    bytesRead, err := notificationService.connection.Read(responseBytes) 
    if err != nil && err != io.EOF { 
     return 0, err 
    } else if bytesRead > 0 { 
     errorResponseInHex := hex.EncodeToString(responseBytes[:bytesRead]) 
     return 0, fmt.Errorf("Received bad response %s", errorResponseInHex) 
    } 

    if err == io.EOF { 
     fmt.Println("BOO NOT AGAIN!!") 
    } 

    return notificationIdentifier, nil 
} 
+0

Вы уверены, что первое (или второе) сообщение отформатировано правильно? Если это не так, приемник может закрыть соединение. – nos

+0

Это было мое первое подозрение, однако перестановка сообщений, похоже, не имеет значения:/ – user1161657

+0

Я забираю это обратно! Первое сообщение вызывает EOF! Однако он все еще доставляется? ... – user1161657

ответ

0

Если первое сообщение было успешно доставлено и второй не удалось, более вероятно, соединение было закрыто из-за проблем во втором сообщении. Наиболее вероятной проблемой будет недопустимый токен устройства (что может произойти, если вы используете маркер разработки при нажатии на APNS производства или наоборот).

Попробуйте отправить только второе сообщение и посмотреть, не работает ли оно. Если нет, проблема определенно в этом сообщении.

+0

Спасибо за отзыв! Кажется, не имеет значения, в какой порядок я отправляю сообщения. Даже отправка одного сообщения дважды вызывает проблему. – user1161657

+0

Первое сообщение, безусловно, получено клиентом. Я использую токен dev с песочницей APNS – user1161657

+0

Первое сообщение вызывает EOF! Однако он все еще доставляется? ... – user1161657

Смежные вопросы