![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 24.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam jestem nowy użytkowaniem tego forum mam problem dla którego zarejestrowałem się tu.
Chodzi mi to przykład na stronie http://code.google.com/p/phpwebsocket/ a konkretnie o serwer. Wszystko działa całkiem dobrze lecz chciałbym go nieco zmienić i dodać funkcje umożliwiającą wysyłanie wiadomości przez serwer do klienta co jakiś czas. W obecnej chwili serwer odpowiada tylko na wezwanie klienta. Siedzę nad tym od piątku i nie potrafię wprowadzi takiej zmiany próbowałem wszystkiego i ciągle nie działa , a niestety innego działającego przykładu nie znalazłem. będę wdzięczny za pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Pierwsza zasada przy jakichkolwiek zabawach z siecią - najpierw naucz się, do czego służy dane rozwiązanie i jak działa, a później myśl, jak to wykorzystać. Zajrzyj sobie do specyfikacji websockets - nie ma tam ani słowa o odbieraniu przychodzących połączeń, więc jak niby wyobrażasz sobie odbiór takiego komunikatu od serwera? Po drugie, skąd serwer miałby wiedzieć, komu wysyłać wiadomość i jak rozwiązałbyś problem z przechodzeniem przez firewalle i NAT? Jeśli klient nie ma publicznego adresu IP w Internecie, ani nie ma zrobionego przekierowania portów, praktycznie nie ma szans się z nim połączyć z zewnątrz.
Jeśli chcesz utrzymać połączenie, to w PHP będzie Ci ciężko, gdyż nie ma tu obsługi współbieżności, a włączenie oczekiwania np. funkcją sleep() zamrozi cały serwer. Można wprawdzie kombinować z utrzymywaniem puli połączeń i okresowym sprawdzaniem, czy czegoś nie trzeba wysłać, ale moim zdaniem już lepiej wziąć język, który się o niebo lepiej nadaje do pisania oprogramowania stricte serwerowego. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 24.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
czytałem i czytałem o nowych rozwiazaniach. websockiets działają full duplex(w obie manki), http://www.kaazing.org/confluence/display/...TML+5+WebSocket wiec taka komunikacja jest możliwa nat to tez nie jest żadna przeszkoda
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Dalej nie rozumiesz, o czym mówię i na czym to polega. Nawiązanie połączenia, a transmisja w już utworzonym połączeniu TCP to dwie różne rzeczy. Przesłać dasz radę dane w obie strony, bo wynika to z fundamentalnych założeń działania TCP, ale musisz mieć otwarte połączenie. A w websockets klient może wyłącznie tworzyć połączenia, natomiast nie może odbierać przychodzących (np. od serwera).
Ten post edytował Zyx 25.01.2010, 16:44:44 -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:46 |