首次写入后APNS关闭连接

时间:2014-06-04 22:03:36

标签: go apple-push-notifications

在我第一次写入套接字后,APNS关闭连接!第一个通知发送完全正常,但第二个通知因EOF而失败。

我附上了一小段代码,用于发送通知。如果我应该加入更多,请告诉我。谢谢你的帮助!

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
}

1 个答案:

答案 0 :(得分:0)

如果第一条消息成功传递而第二条消息失败,则由于第二条消息中的问题,更有可能关闭连接。最可能的问题是无效的设备令牌(如果您在推送到生产APNS环境时使用开发令牌,可能会发生这种情况,反之亦然)。

尝试仅发送第二条消息,看看它是否有效。如果没有,问题肯定在那条消息中。