Przesłanie tekstu ze strony do aplikacji, propozycje realizacji

0

Witam!

Myślę i myślę i wymyśleć nie mogę w jaki sposób mógłbym zrealizować przesłanie tekstu ze strony (przy użyciu PHP) do aplikacji pisanej w C# (choć to jest akurat obojętne - liczy się sposób). Jedyne co wymyśliłem to zapis do bazy danych np. MySQL i odczyt w aplikacji, lub też bardziej niechlujnie zapis do pliku np. tekstowego i odczyt w aplikacji. Jednakże jest to do bani - ma to pewną wadę - co pewien czas w aplikacji musiałbym sprawdzać czy coś się nie zmieniło w bazie, lub też w pliku - toż to marnotractwo transferu i brak profesjonalizmu.

Chciałbym by w czasie rzeczywistym (lub z bardzo małymi opóźnieniami) po zapisie tekstu w bazie danych - uzyskać to w aplikacji...

Jakieś pomysły? W przypadku Aplikacja - Aplikacja nie było by problemu bo robi się nam po prostu komunikator, ale strona www (PHP) / C# i pakiety to już coś się robi nie ciekawie

Zastanawia mnie w jaki sposób monitorowane są np. otrzymane smsy na stronie bramki SMS orange - w momencie odpisania przez kogoś na smsa z bramki pojawia się okienko z wiadomością, tutaj oczywiście w pomocy goni AJAX, ale jak to jest , że nie trzeba co sekunde sprawdzać np. 10 000 sesji z bamki sms, a odpowiedź na sms trafia dokładnie do tej sesji bramki do której powinna. Idąc tym tropem dochodzimy do Shoutbox, który też jest w trybie rzeczywistym. No to teraz krok do realtime in C# :D

pozdrawiam serdecznie

0

a co oznacza A w AJAX? ;) Nie znam się na C# ale w AJAXie requesty są asynchroniczne, czyli możesz wysyłać zapytanie we większych interwałach.
Na kliencie-u Ciebie c# powinno to być tak, że wysyłasz request i czekasz -jeśli klient dostanie odpowiedź to wysyła kolejny request. Dodatkowo warto dać jakiś timeout.

Na serwerze php w momencie otrzymania requestu sprawdzasz przez np 20 sekund stan bazy danych, jeśli coś się zmieni wysyłasz nowe dane, jeśli nie wysyłasz jakiś komunikat, że nic się nie stało.

Podejrzyj sobie shoutboxy i zobacz jak działają.

1

zapoznaj się z pojęciem Comet. w skrócie - to asynchroniczne stuknięcie do serwera z bardzo długim timeoutem, serwer wisi na jakimś muteksie i odpowiada dopiero po tym, jak otrzyma dane.

0

Więc robi się problematycznie. Bo jak pisałem chciałem prosto np. z formularza na stronie WWW wysłać w trybie rzeczywistym tekst prosto do aplikacji C#. Lub też na bieŻąco (Boże, widzisz takie błędy i nie grzmisz) monitorować czy w bazie danych coś się zmieniło ale bez ciągłego sprawdzania co sekunde.

0

To możesz też zaimplementować obserwator:
Aplikacja c# przy uruchomieniu wysyła do php informację o tym, że nasłuchuje i zaczyna nasłuchiwać, nie wiem: na sockecie, albo jako serwer webservice.
A php w momencie zmiany w bazie strzela do wszystkich zarejestrowanych słuchaczy :)

0

jak na bieżąco chcesz monitorować bazę danych bez ciągłego stukania do niej?
jak chcesz w czasie rzeczywistym (czas rzeczywisty, nie tryb, bo tryb rzeczywisty to sposób pracy procesora) wysyłać dane przez sieć? nie stać Cię na takie rozwiązanie i być może nigdy stać nie będzie. dane biegające po internecie (a czasem i po sieci lokalnej) mają dość losowe opóźnienia, te wysłane później mogą przyjść przed tymi wysłanymi wcześniej.

Bo jak pisałem chciałem prosto np. z formularza na stronie WWW wysłać w trybie rzeczywistym tekst prosto do aplikacji C#.

tak sobie wyobrażam rozwiązanie: dane z przeglądarki wysyłasz paczkami, po potwierdzeniu wysłania jednej wysyłasz drugą. serwer udostępnia gniazdo, do którego łączy się aplikacja, a jeśli jakaś jest podłączona to po tcp wysyła jej/im otrzymany tekst.

0

Czyli kolega by rozwiązał ten problem zapętlonym stukaniem do bazy mam rozumieć?

1 użytkowników online, w tym zalogowanych: 0, gości: 1