![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Привет, золотые умы!
Я делаю видео-чат. У меня есть FMS. На FMS есть SharedObject, к которому подключаются клиенты и регистрируют себя при подключении. Таким образом все клиенты в курсе того кто подключен, но когда клиент отключается, запись в SO о том что он подключен остается. На стороне клиента я не могу отловить момент выключения - закрыли окно и все тут. А все остальные думают что клиент жив. Логично сотворить некий ping которым они будут перебрасываться. Например клиент с некой периодичностью опрашивает всех из списка, если кто-то не отвечает - выпиливает его из списка клиентов. Но если каждый клиент будет этим заниматься, количество перекрестных запросов будет увеличиваться с каждым клиентом в геометрической прогрессии, а это не ок. Тогда я подумал об аналоге суперноды, один из клиентов наделенный функцией суперноды пингует всех. Вроде все ок, но что случится если супернода отключится? Хаос и анархия? Как оставшиеся ноды разберутся кто из них у руля? Помогите. Писать код на стороне сервера нет никакого желания. Для меня это ад. И интересно именно реализация всего в одном клиенте. |
|
|||||
|
Лучшая реализация тут, это на сервере ловить событие Disconnect
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
Ну я же не спроста написал последнюю строчку в посте )))
|
|
|||||
|
При ваших методах реализации, это будет какая-то эмуляция p2p...
Добавлено через 46 секунд зы : FMS имеет свой скриптовый язык очень схожий с AS 2.0, т.к. проблем там не должно возникнуть.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
Вот именно! Я хочу эмулировать p2p )
|
|
|||||
|
Тогда по стандарту : клиентский сервер -> клиенты. клиентский сервер ушел в оффлайн, всех дисконект.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
fish_r Тогда как инициализировать цепочку?
Идея интересная Добавлено через 1 минуту Genzo всех дисконект - это не наш метод ) |
|
|||||
|
Тогда цепочкой либо по "стоимости" клиента сортировать ее, либо по времени подключения.
Клиент подключился, смотрит если ли сервер, если да то посылает ему : "я подключился", сервер записывает его в список, клиенты с периодичностью пингуют сервер, если он не ответил записывают новый сервер, по логике выбранной выше и т.п., но это очень не правильная реализация когда клиенты выбирают кто сервер, т.к. любой клиент может поменять сервер.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
Genzo спасибо, попробую )
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|