Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 1 Dołączył: 11.06.2011 Ostrzeżenie: (0%)
|
Witam jak ugryźć taki temat:
Mamy serwis www który ma służyć do wizualizacji informacji przesyłanych ze zdalnych urządzeń GPRS. Z pomocą przychodzi nam PHP Sockets dzięki któremu mogę otworzyć port i nasłuchiwać informacji z urządzenia GPRS, problem w tym że skrypt czy też "mini serwer" PHP musi być uruchomiony poza apache w "czystym" PHP z wiersza poleceń bo inaczej nie działa - tzn. mi nie udało się go uruchomić i nie znalazłem też żadnego przykładu z takim rozwiązaniem. No a jeśli niema innego rozwiązania i skrypt wykonywany pod apache nie może otwierać i nasłuchiwać portów to jak rozwiązać problem komunikacji naszego serwisu stojącego na apache z "mini serwerem PHP" odbierającym dane po GPRS ? oczywiście z odebraniem danych nie ma dramatu bo skrypt mógł by je wrzucać do bazy danych a nasza strona by z niej czytała ale przy próbie wysłania czego do urządzenia GPRS jest już problem.... przynajmniej tak mi się wydaje....(IMG:style_emoticons/default/wink.gif) reasumując: 1. czy nasz serwis www na apache może samodzielnie otwierać i nasłuchiwać porty - jeśli tak to jak to zrobić? 2. jeśli nie może i musi to robić niezależny skrypt to jak taki serwis poskładać do kupy, jak się komunikować z tym skryptem przesyłać dane między serwisem a skryptem itd.... mam nadzieje że mocno nie zamieszałem pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 1 Dołączył: 11.06.2011 Ostrzeżenie: (0%)
|
No i jednak działa mogę tworzyć i nasłuchiwać porty z poziomu aplikacji uruchomionej na apache (IMG:style_emoticons/default/biggrin.gif)
Tylko uświadomiłem sobie że niesie to za sobą mnóstwo problemów i kombinacji :/ podstawowa sprawa - raporty z urządzeń muszą spływać do DB cały czas nie tylko na czas trwania sesji użytkownika więc wariant z mini serwerem PHP jest o wiele sensowniejszy. Jak już pisałem wcześniej w tym wypadku do rozwiązania pozostanie problem komunikacji między serwerem PHP a aplikacją a więc: 1. odczyt danych - skrypt PHP wrzuca dane do DB a aplikacja sobie odczytuje tylko że będzie to całkowicie asynchroniczne, co w sytuacji gdy skrypt będzie zapisywał dane w DB a w tym samym momencie z poziomu aplikacji użytkownik będzie coś usuwał, wyszukiwał itd... silnik DB (InnoDB) zadba o to żeby nie było bałaganu czy trzeba się zając tym samemu ? 2. interakcja z urządzeniami GPRS z poziomu aplikacji? tutaj mam większy problem - na razie pomysł mam taki: do każdego połączenia serwerPHP <=> Urządzenie GPRS zestawiam drugie połączenie Aplikacja <=> serwerPHP i gadam z serwerem poprzez port TCP - ma to sens?? trzecia sprawa która mnie trapi to niekończące się pętle po stronie serweraPHP - a więc każdy otwarty socket to niekończąca się pętla która czeka na dane spływające z GPRS czy przy np. 100 urządzeniach nie będzie to duży kłopot? do tego tyle samo iteracji czekających na polecenia z aplikacji (to przy zastosowaniu sposobu j.w), do tego jakaś pętla musi latać po tabeli urządzeń i sprawdzać flagę aktywności aby zamykać i otwierać porty w razie włączenia wyłączenia urządzenia - czy są znane jakieś dobre praktyki przy tego typu zagadnieniach? |
|
|
|
phpmack [PHP] PHP Sockets i Apache - jak to połączyć? 25.06.2011, 14:47:49
erix Ok, to własny serwer, czy jakiś wynajęty/shared? J... 25.06.2011, 15:02:16
mls Poprzedni wątek autora...
Cytat(phpmack @ 25... 25.06.2011, 15:42:37
phpmack Oczywiście serwer własny więc mogę go konfigurować... 25.06.2011, 16:43:04
mls Socketów nasłuchujących nie ma po co przypisywać d... 25.06.2011, 18:59:22
zegarek84 stream_select / socket_select
Guru - Multiplexing ... 26.06.2011, 13:57:20
phpmack Jestem po lekturze zganień związanych z stream_sel... 27.06.2011, 18:49:26 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 06:16 |