PHP ve uygulama arasındaki iletişim

4 Cevap php

Ben bir gömülü Linux cihazı ile oynamak ve bir web arayüzü ile iletişim kurmak için benim uygulama kodu almak için bir yol arıyorum. Ben cihazlar web arayüzü uygulaması bazı durum bilgilerini göstermek gerekir ve ayrıca vb arayüzü yapmak için iyi bir yol olarak PHP-görünüyor yüklenen dosyalar gibi herhangi bir kullanıcı eylemleri uygulamasını bilgilendirmek için bir yol var, ama istiyorum iletişim parçasıdır zordur. Ben aşağıdaki seçenekleri bulunan, ancak olurdu emin değil kolay ve kullanımı en uygun.

Sockets. bu denemek için ilk PHP için yuva sağlamak zorunda. Sağlayarak çok daha fazla yer alacak bilmiyorum.

Database. bir overkill çözüm gibi görünüyor.

Shared file. bir sürü iş gibi görünüyor.

Eşzamanlı sayfa yükleri örneğin ile ilgili sorunlar varsa olacak Named pipes. Eminim biraz başarı ile bu çalıştı, ama değil. Belki prizler kolay?

Ne gitmek için en iyi yol olacağını? Ben tamamen eksik bir şey var mı? Bu bu çok sayıda ticari Linux tabanlı ağ anahtarları nasıl yapılır?

4 Cevap

Geçenlerde yuvalarını kullanarak çok benzer bir şey yaptım ve gerçekten iyi çalıştı. Ben bir sunucu soketi dinledi cihazı ile iletişim kuran bir Java uygulaması vardı, ve PHP uygulama müşteri oldu.

Yani sizin durumunuzda, PHP istemci bağlantısını başlatmak istiyorum, ve sonra sunucu cihazın durumu ile cevap verebilirsiniz.

Orada en dilleri ile istemci / sunucu soket iletişimi nasıl öğreticiler bol, bu yüzden anlamaya çok uzun sürmez.

Bu cihazın ne tür?

Paylaşılan bir dosya gibi bir şey çalışmak, nasıl cihaz güncellenmiş olacak?

Nasıl adlandırılmış borular prizler önlemek olacaktır eşzamanlılık sorunlar çalışacağını?

PHP cihazdan iletişim açısından, bir dosya mükemmel görünüyor. PHP file_get_contents () gibi temel şey kullanabilirsiniz, cihaz sadece dosyaya yazabilirsiniz. Eğer zamanında an hakkında endişeli iseniz dosya hızlı bir uzunluk kontrolünden güncellenir.

PHP ne yapacağını cihazı bilgilendirilmesi açısından, ben de dosyaları doğru eğilerek ediyorum. Cihaz bir dizin izlemek var, ve script file_put_contents gibi bir şey ($ yol uniqid (), $ komut.) Orada bir dosya oluşturmak var; Iki komut tam sime zaman çalışması gerektiğini yolu, sadece çalışmak için cihaz için iki dosya var.

Web arayüzü ile yönlendirme için Gömülü Linux kutuları PHP kullanmayın. Bunlar CGI kullanımı ve kabuk komut dosyaları web sayfası sunmak var.

Web arayüzüne uygulamadan bilgi almak için, paylaşılan dosya seçeneği benim için en makul görünüyor. Uygulama sadece PHP tarafından okunan dosyanın içine bilgi yazabilirsiniz.

Bunun tersi ilk başta çok iyi değil görünüyor. PHP dosya kilitleme destekler, ancak büyük olasılıkla bir sistem düzeyinde çalışmaz. Belki bir çözüm aslında uygulama için bilgiye sahip her bir PHP komut dosyası (zaman damgası + rastgele değere dayalı, benzersiz bir kimliği dosya adı ile örneğin) bunu kendi dosyası oluşturur olmasıdır. Uygulama pop-up için bu dosyalar için belirlenmiş bir dizin izlemek olabilir. Onları işledikten sonra, bu sadece onları silmek olabilir. Bunun için, uygulama yalnızca dizinde yazma izni gerekiyor (yani dosya sahiplik bir sorun değildir).

Mümkünse, kabuk komut dosyalarını kullanabilirsiniz.

Ben benzer bir şey yaptım, ben bir video gözetim uygulaması yazdı. Video kısmı hareket (bir büyük FOSS paketi) tarafından işlenir. Uygulama slot makinesi casinolar izlemek için kullanılan standart donanım üzerinde anahtar teslimi bir çözümdür. Bu yerel bir kiosk sistemi olarak hizmet veren ve internet üzerinden erişilebilir. PHP tüm UI kod yazdı, yerel ekran Localhost'a varsaymak tam ekran tarayıcı ile sıkıca kilitli KDE masaüstü. Ben hareket ve OS ile etkileşim için kabuk komut kullanılır.

On a second thought: If you can use self-compiled applications on the device: Write a simple program that returns the value you want and use PHP's exec() or passthru() or system().