Sprawdzanie dostępności

0

Witam!

Mam w planie zrobić mini-komunikator. Mam kilka pomysłów. A więc mój komunikator miałby komunikować się za pomocą FTP. I tutaj jest pytanie: jak sprawdzać czy dany użytkownik z listy jest dostępny? Mój pomysł brzmi następująco:

-jeżeli użytkownik poprawnie się zalogował to w folderze DOSTĘPNI jego komunikator stworzyłby pusty plik z jego nazwą np. FRANEK. Następnie inne komunikatory sprawdzałbyby listę kontaktów i jeżeli miałyby na niej użytkownika o nazwie FRANEK to sprawdzałby czy w folderze znajduje się plik o nazwie Franek. A gdyby Franek zamykał program lub wylogowywał się to jego komunikator usunąłby "plik dostępnosci". Problem pojawia się gdyby Frankowi nagle wyłączył się internet lub gdyby komputer padł... To wszytsko miałbym wykonywać za pomocą komponentu IdFTP (Indy).

-drugie rozwiązanie jest takie samo tylko że program by po prostu uruchamiał odpowiedni skrypt PHP. Lecz nadal pozostaje problem z nagłym wyłączeniem komputera...

Problem polega też na tym że program musi sprawdzać dostępność co mniejwięcej 5 sekund, i co mniejwięcej 3 sekundy musiałby sprawdzać czy nikt nie wysyła do niego wiadomości. I pojawia się problem gdyż te procesy nałożą się na siebie w 15 sekundzie... I jakby program musiałby zrobić tew dwie rzeczy naraz (dwa komponenty TTimer) to czy by nie pultał się??

Macie może jakieś pomysły na rozwiązanie tych problemów i czy macie jakiś inny pomysł na sprawdzanie dostępności użytkowników??</i>

0

Komunikator przez ftp to zjebany pomysł, jak chcesz sprawdzać co 3 i co 5 sekund to i tak jest niskie prawdopodobieństwo że się wstrzelą w siebie z prostego powodu: różnice czasu rozpoczęcia.

Komunikator najlepiej robić na zasadzie p2p, czyli jak nie ma odpowiedzi to kontakt zdechł i tyle.

0

Jak już koniecznie Ci na czymś takim zależy to polecam przez PHP - uratuje Cię przed problemami równoległości zdarzeń - jak dobrze się za to weźmiesz.

Czy potrzebujesz update'u stanu co 5 sekund? Jak tak, to może zapomnij o FTP lub PHP i zrób jak napisano powyżej - P2P, ewentualnie aktywnym serwerem. Jak dopuszczalne jest wolniejsze aktualizowanie, niech na przykład klient przesyła komunikat o swojej obecności do serwera co, powiedzmy, 30 sekund, a każda wysłana wiadomość niech również będzie traktowana jako informacja o obecności.

0

a nie lepiej zarejestrować sobie kanał na polnecie i zrobić komunikator oparty o sieć IRC?

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