Halo semuanya. Baru-baru ini, proyek saya berhenti menerima pemberitahuan push pada perangkat iOS. Setelah proses "googling", ternyata pemberitahuan push untuk "apel" sekarang harus dikirim melalui protokol http / 2.
HEADERS
- END_STREAM
+ END_HEADERS
:method = POST
:scheme = https
:path = /3/device/00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0
host = api.development.push.apple.com
authorization = bearer eyAia2lkIjogIjhZTDNHM1JSWDciIH0.eyAiaXNzIjogIkM4Nk5WOUpYM0QiLCAiaWF0I
jogIjE0NTkxNDM1ODA2NTAiIH0.MEYCIQDzqyahmH1rz1s-LFNkylXEa2lZ_aOCX4daxxTZkVEGzwIhALvkClnx5m5eAT6
Lxw7LZtEQcH6JENhJTMArwLf3sXwi
apns-id = eabeae54-14a8-11e5-b60b-1697f925ec7b
apns-expiration = 0
apns-priority = 10
apns-topic = <MyAppTopic>
DATA
+ END_STREAM
{ "aps" : { "alert" : "Hello" } }
Listing 8-3 shows a sample request constructed for a certificate that contains multiple topics.
Berikut adalah contoh permintaan melalui protokol http / 2
. ASP.NET Framework IIS. Windows 2012R2. , HTTP/2 . - . . . "". ANDROID .
ASP.NET Core. ASP.NET Core Linux. Linux HTTP/2.
ASP.NET Core .
public class dotAPNSService : IDisposable
{
public event EventHandler OnTokenExpiredHandler;
private ApnsJwtOptions options = null;
public dotAPNSService(string bundle)
{
options = new ApnsJwtOptions()
{
BundleId = bundle, // com.org.test
CertContent = " ",//https://developer.apple.com/account/resources/authkeys/list
KeyId = " ",//https://developer.apple.com/account/resources/authkeys/list
TeamId = " "//https://developer.apple.com/account/resources/authkeys/list
};
}
public void SendNotifications(String[] deviceTokens, String title, String body)
{
if (deviceTokens == null || deviceTokens.Length <= 0)
{
return;
}
if (String.IsNullOrEmpty(title))
{
return;
}
if (String.IsNullOrEmpty(body))
{
return;
}
// once you've gathered all the information needed and created an options instance, it's time to call
var apns = ApnsClient.CreateUsingJwt(new HttpClient( ), options);
// start the process
foreach (String deviceToken in deviceTokens)
{
var push = new ApplePush(ApplePushType.Alert)
.AddAlert(title, body)
.AddToken(deviceToken);
Send(apns, push, deviceToken);
}
}
}
!!! . . .
NET.Core Docker. VPS REG.RU. VPS.
! . . . .
Visual Studio
.
Kemudian terhubung ke server kami melalui SSH. kunci akses akan dikirimkan kepada Anda melalui email.
Masukkan perintah untuk meluncurkan proyek Anda dari buruh pelabuhan
docker run -d -p 80:80/tcp /
setelah perintah ini, proyek Anda akan tersedia di http: // server ipaddress /
Selanjutnya di semua proyek, saya cukup mengirim permintaan posting ke alamat ini dengan serangkaian token penerima, header dan pesan. Semuanya berjalan dan datang dengan sangat cepat.
PS Anda dapat mengikat nama domain di pengaturan reg.ru.
Hasil
Saat ini, semua pesan push berbunyi normal. Tidak ditemukan masalah dengan bundel seperti itu. Bahkan tampaknya pemberitahuan push hilang lebih cepat daripada sebelumnya. Saya harap artikel saya akan membantu mereka yang menghadapi masalah serupa.