Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PubSub
kpt_lucek
post
Post #1





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witajcie

Borykam się z pewnym problemem, mam przygotowany mechanizm PubSub (Websocket).

Opierając się o autobahn napisałem chat od strony klienta, a gosws serwer.

To z czym mam problem, bądź mi nie pasuje:
1) Serwer umiera przy dużej liczbie połączeń, cron "lata" co minutę i stara się reanimować, co w efekcie powoduje kolejne padnięcie trupem,
2) Tym mogę wyciągnąć usera, a co za tym idzie - podczas requesta, poza danymi leci również ciastko (imo nie powinno, nie do tego jest pub&sub nie?),
3) Alternatywa crossbar działa fajnie, 20k requestów/s nawet nie gryzie, aczkolwiek nie ma sharowania ciastek (przynajmniej na tym etapie dokumentacji na którym jestem, ale to nie istnotne), a poza tym i tak potrzebuję subscriber'a i publisher'a od strony php, co za tym idzie, sytuacja bardzo podobna do 1, mianowicie - dużo requestów, apka pada.

to co chcę uzyskać, to względnie wydajne narzędzie, bazujące na czymś co (najlepiej) już jest (chociażby wspomniany crossbar), możliwość względnie bezawaryjnego "słuchania" i "nadawania" do dowolnego użytkownika/grupy użytkowników na kanale, szyfrowanie to swoją drogą. Można by zapewne autoryzować użytkownika po tokenie dołączonym do payload'u, ale tutaj security fkup (tak, wiem że podwędzenie użytkownika i hasła do komputera też może się "stać").



Jakieś sugestie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kpt_lucek
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Damonsson @ 4.11.2015, 01:51:09 ) *
Ad 3) Nie wierzę, że 20k zabija serwer, musisz robić tam coś jeszcze dziwnego.

Nigdzie nie napisałem, że 20k zabija serwer, wspomniałem o tym, że pętla to robi, na moje oko dzieje się za dużo magii po odebraniu requesta i raczej tam muszę popatrzeć.

Cytat(Damonsson @ 4.11.2015, 01:51:09 ) *
Autoryzację użytkownika masz rozwiązaną po cookies, musisz tylko sesję obsługiwać np. w Redisie, ja osobiście tak robię i działa super, kolega by_ikar, widzę też coś takiego sobie pisze. Opis jak to zrobić, masz w dokumentacji GOSWebSocketBundle albo Ratchet.

Redis od samego początku trzyma sesje, dlatego mogę go (użytkownika) autoryzować po stronię apki (wspomniałem o tym (IMG:style_emoticons/default/smile.gif) )

--

To o co pytałem, tyczyło się raczej kwestii podejścia do problemu, meritum problemu jest to, że podczas pętli wszystko siedzi w pamięci, wyobraź sobie doctrine'a który ciągnie dziesiątki, setki albo i tysiące rekordów z bazy a potem ładuje to w pamięć, logicznym jest wyczyszczenie cache'u po wykonaniu akcji push (client->server i server->client). Pytanie, na ile da radę vps utrzymujący aplikację, oraz handlowanie eventów, gdzieś jest granica (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 11:59