Socket, stream czy jeszcze co innego?

Szymoon202 | 2021-02-17 10:25:38 UTC | #1

Mam spory dylemat. Mam napisaną aplikację w php która co jakiś czas sprawdza różne rzeczy. Chciałbym by podczas uruchamiania, tworzyła ona socket/stream (nie wiem co), do której mogłaby się podłączyć np. strona www i wysyłając odpowiednie polecenie, zwróci jej daną wartość. Zainteresowałem się tym: https://www.php.net/manual/en/function.socket-create.php i stworzyłem socket socket_create(AF_UNIX, SOCK_STREAM, 0), następnie przypisałem mu adres socket_bind($app_socket, 'localhost', 1001) oraz włączyłem nasłuchiwanie socket_listen($app_socket). Lecz niestety to nie działa - ze strony www ten socket nie istnieje. Pewnie coś robię źle bo nie bardzo rozumiem dokumentacji dot. socketów. Nawet nie wiem czy mam stworzyć socket czy coś innego. Nie wymagam gotowego kodu, chciałbym jedynie podpowiedzi czym powinienem się zainteresować żeby to dobrze zrobić.


SystemZ | 2019-04-13 16:08:02 UTC | #2

Jeśli danych nie jest za dużo to osobiście zapisywał bym je w Redis a potem odczytywał stroną. Umożliwi Ci to współdzielenie stanu aplikacji między jej wieloma instancjami.


Szymoon202 | 2019-04-13 16:49:00 UTC | #3

Danych sporo jest a do tego zmieniają się dynamicznie, bo są uzależnione od użytkowników.
Chyba wole iść w te sockety, tylko nie bardzo potrafię się nimi obsługiwać a dokumentacja do mnie nie dociera.


SystemZ | 2019-04-13 22:33:39 UTC | #4

Zamierzasz zachowywać więcej niż powiedzmy 100MB tekstu ?


Szymoon202 | 2019-04-14 07:39:14 UTC | #5

Dajmy na to, że aplikacja działa tydzień (średnio). Dziennie, przetwarza ok. 10k poleceń ze strony www. Na pewno będzie to więcej niż 100MB, zwłaszcza, że czasami są to obrazy w base64 (generowanie statusu na obrazku).


SystemZ | 2019-04-14 07:58:48 UTC | #6

Trochę za mało piszesz o projekcie aby wybrać coś optymalnego.
Musiałbyś opisać co robi aplikacja i jak wygląda jej praca.

Obecnie mówisz o base64 ale to trudno się cachuje i rzadko jest sens tego używać bo nadmiarowość jest duża a wydajność słaba.
Zazwyczaj lepiej wrzucić obrazek na statyczny hosting i po prostu przesłać sobie wewnętrznie w aplikacji link do niej i to odesłać klientowi, o ile jest możliwe w tym zastosowaniu.


system | 2021-02-17 10:25:42 UTC | #7

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.