PHP-çağrılan. Exe programının çıkış göndermek için olası yöntemleri geri iPhone istemcisi ile (o değil PHP ayrı bir süreç olarak çalışır)

4 Cevap php

My iPhone istemci uygulaması PHP üzerinde çalışan sunucu, bir veri yükler. PHP sunucu tarafında bir. Exe programını çağırmak için bir kod bulunmaktadır. . Exe programı, yüklenen veri almak ve kendi başına bir süreç üzerinde çalışacaktır. Yani PHP yürütme. Exe programı bitirmek için beklemeden sona erecek demektir. . Exe programı yüklenen verileri işlemeyi tamamladı ve bir çıkış var sonra, bu çıkış geri iPhone gönderilmesini istiyorum.

Biz bir ayrı işlemi yapılmadan php içinde çalıştırmak için. Exe programını ararsanız Normalde, biz programı bitirmek için ve biz iPhone istemcisi geri çıkışını gönderebilirsiniz için beklemek zorunda.

Ayrı bir süreç olarak. Exe programını çalıştırarak, bu. Exe programını çağırır PHP ile geri veri göndermek mümkün değildir. Soru,. Exe programı ayrı bir süreç çalışan ziyade PHP senaryo üzerinde varsa, geri iPhone istemcisi çıktı göndermek için olası yöntemleri nelerdir, nedir?

4 Cevap

Yani ana hatlarıyla bir ihtiyaç sorun. Bana fikirlerin bir çift anlatalım.

Her şeyden önce, sen ilk yükleme isteği, bu yapılıyor kontrol etmek için tek resonable yolu sonlandırmak iPhone her birkaç saniyede yoklamak için. "Olsun-update.php" Her 5 saniyede bir veri olup olmadığını görmek için bir istek gönderin.

$ _SESSION Kullanarak, bu işlem bittikten verileri tespit edecek bir belirteci saklamak gerekir.

Aslında sürecine ilişkin, yollar bir dizi bunu başarmak mümkün olabilir. Bir ebeveynden çocuk süreç ayırma, oldukça standart bir çift çatal yapmak, bu yüzden ebeveyn çıkar sonra devam edecektir.

Başka bir (önerilir) bunları işlemek, onları getir, istekleri için veritabanı izlemek ve veritabanını güncellemek olacak bir arka uç sunucu işlemi yazar olacaktır. Açmasının yükleme komut aslında verileri yükler Yani, PHP $ _SESSION kayıt kimliği saklamak ve kullanıcıya dönmek, veritabanında koyduk.

Arka uç süreci işlemek için bir rekor olduğunu fark veri okumak, yürütülebilir arama ve sonuç veritabanını güncellemek olacaktır.

Get-update.php komut rekor kimliği için $ _SESSION okuma ve veri işleme (ya da ne durum budur) olup olmadığını veritabanı kontrol edecektir.

Eğer bir arka plan işlemi çalıştırmak için yeteneği yok, ve PHP kullanarak kısıtlı iseniz, çift çatal büyü yapmak, ve veritabanı okuma / exe / veritabanı güncelleme yapmak için başka bir PHP sürecinin çatal olabilir.

Soruları ile yorum yapmaktan çekinmeyin.

Sen programa veri aktarmak için (a) iyi bir şekilde ve geri veri almak için, (b) iyi bir yol gerekir.

Ben bunun için mükemmel bir durum olduğunu söyleyebilirim bir AJAX Bir metin dosyası, diyelim ki, sık sık yoklama verileri pasajı. Exe Lütfen durumunu yazar

Aradığınızda yükleme komut dosyası yükleme istemci için bir tür benzersiz bir tanımlayıcı geri dönebilirler. Olumlu geribildirim alır kadar bu tanımlayıcı kullanarak, istemci exe durumunu (örneğin "çıktı dosyası xyz zaten mevcut mu?") Yoklar olacaktır.

Eğer bağlantı kopmuş bir kez iPhone ile yeniden bir sabit zaman var olacak. Bu kapsama alanı dışında olabilir, bu ......, değişmiş IP adresi olabilir

Yapabileceğiniz en iyi şey iPhone geri sunucuya yeniden ve bilgiler bulunuyor yoklamak sahip olmaktır.

, Apple'ın Push Notification servisini kullanarak bunu yapabileceğini, ancak veri işleme uzun bir zaman alacak düşünüyorum, ve / veya işlem bittiğinde uygulama simgesi güncellemek istediğiniz sürece, muhtemelen overkill bile olsa app çalışmıyor.

Eğer kullanıcı sadece sabırla sonucu bekliyor, ya da veri kapalı yangın ve daha sonra tekrar kontrol için gidiyoruz bekliyor musunuz? Sadece bir kaç saniye almaya gidiyor, sadece (bir ilerleme göstergesi görüntülenirken) bir süre bekledikten sonra sonuç için iPhone app anket olabilir.