Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Chat, websocket - logika działania aplikacji, Proszę o ocene wstępnych założeń działania chatu real time z WS.
zielq701
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.07.2013

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


Witam wszystkich,
chcę stworzyć aplikację, coś ala chat z facebooka. Nasunęło mi się kilka pytań i liczę na Waszą pomoc. Chce działać w oparciu o Ratchet (server WS w php), a więc do rzeczy.

1) Logowanie do chatu.
- osoba która loguje się do chatu, przesyła przez WS swoje dane do logowania,
- server sprawdza, czy dane są poprawne,
- jeżeli są, dodaje token do bazy danych (dowiązuje go do aktywnego połączenia) i wysyła użytkownikowi. Javascript odczytuje token i zachowuje w zmiennej.

Jest jeszcze możliwość użycia sesji. "Important: Sessions through WebSockets work as they do through a traditional webserver; a cookie is set and transmitted in each request header. This means that your website and your WebSocket server both must have access to the cookie.".

Nie wiem czy dobrze rozumiem, czy nagłówki wysyłane są przy każdej wiadomości? Czy rozwiązanie które zaproponowałem jest poprawne (pod względem bezpieczeństwa i prędkości działania aplikacji), czy jednak powinienem użyć sesji, lub całkowicie czegoś innego?

2) Wysyłanie wiadomości (JSON).
Gdy użytkownik przeszedł autoryzację, może wysyłać wiadomości, w których przekazywany jest token oraz id usera do którego ma dojść wiadomość (id zapisane w bazie danych, ponieważ można wysyłać wiadomości do osób, które nie są zalogowane).
- server sprawdza czy token jest powiązany z aktywnym połączeniem, które ten token otrzymało (łączy się z baza danych, i sprawdza czy wpis istnieje),
- jeżeli tak, to wysyła wiadomość oraz zapisuje ją w bazie, jeżeli nie zwraca błąd.

3) Konferencje lub chat roomy.
- Użytkownik wysyła id konferencji lub chatroomu w wiadomości do servera,
- server sprawdza id konferencji w bazie danych i wysyła wiadomość do przypisanych użytkowników.

To jest mój jedyny pomysł jak mogłoby to wyglądać, czy tak będzie dobrze?

4) Kto jest online.
Osoba która się dołącza, dodawana jest do bazy, a zaktualizowany status wysyłany do już zalogowanych.
Ktoś, kto się łączy pobiera z bazy osoby online.
Przy rozłączaniu wpis z bazy jest kasowany (czy może jednak lepiej przechowywać wpisy i tylko je aktualizować?), a do osób na chacie wysyłany jest zaktualizowany status użytkownika.

Proszę o podpowiedzi co do logiki działania takiej aplikacji. Po Waszej weryfikacji, zacznę od zaprojektowania bazy danych i wstawię tutaj jakiś szkic do sprawdzenia.

Z góry wielkie dzięki za pomoc (IMG:style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


200 stałych połączeń, czy 200 requestów? Czym utworzyłeś te 200 połączeń? Screen niewiele mi mówi, wywnioskować z niego mogę tylko tyle że putty zmienia czcionkę dla wytłuszczonego tekstu (zmień to w ustawieniach colours na kolor albo "oba").

Co do tego czy powinieneś zmienić czy nie, wszystko zależy od twoich potrzeb. Same połączenia to też nie jest wszystko, dodaj do tego emity, zapisywanie do bazy, odczytywanie z niej etc. Wszystko zależy od tego do czego aspiruje twój projekt.

Ten post edytował by_ikar 29.11.2014, 20:34:53
Go to the top of the page
+Quote Post
zielq701
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.07.2013

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


Poczytałem troche i skorzystam z rozwiązania, które zaproponowałeś. Dzięki za pomoc (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: 10.10.2025 - 08:03