Go APNS在第一次写入后关闭连接
在我第一次写入套接字后,APNS将关闭连接!第一个通知发送得非常好,但第二个通知由于EOF而失败 我已经附上了一个发送通知的代码片段。让我知道我是否应该包括更多。谢谢你的帮助Go APNS在第一次写入后关闭连接,go,apple-push-notifications,Go,Apple Push Notifications,在我第一次写入套接字后,APNS将关闭连接!第一个通知发送得非常好,但第二个通知由于EOF而失败 我已经附上了一个发送通知的代码片段。让我知道我是否应该包括更多。谢谢你的帮助 func (notificationService *NotificationService) Send(deviceToken []byte, payload *Payload, expiration time.Time, priority int) (uint32, error) { apnsBinary, e
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
}
如果第一条消息成功传递,而第二条消息失败,则更有可能是由于第二条消息中的问题而关闭了连接。最可能的问题是无效的设备令牌,如果在推送到生产APNS env时使用开发令牌,则可能会发生这种情况,反之亦然
试着只发送第二条消息,看看它是否有效。如果没有,问题肯定出在该消息中。您确定第一条或第二条消息的格式正确吗?如果不是,接收者可能会关闭我第一次怀疑的连接,但是消息的排列似乎没有什么区别:/I我收回!第一条消息导致EOF!但是它仍然在被传递?…我想你比这里的任何人都更清楚你的信息是否被传递。你说的交付是什么意思?APN读取了您的邮件,并成功地处理了它,您可以在其他地方观察此邮件的效果?是的,我看到通知出现在我的手机上谢谢您的反馈!我发送消息的顺序似乎并不重要。即使发送两次相同的消息也会导致问题。第一条消息肯定是由客户端接收的。我正在沙盒APN中使用dev令牌