Форум сайта python.su
Добрый день. Подскажите, пожалуйста, алгоритм либо где почитать о подобном.
Что есть: Клент на джаваскрипте, сервер на торнадо, Общаются между собой через вебсокеты.
Как работает: Клиент делает какие то действия, отправляет их на сервер. На сервере написано приложение, которому торнадо передает сообщения. Приложение проводит рассчеты и отсылает другим клиентам данные также через торнадо.
В чем сложность: Сервер рассылает сообщения клиентам только в случае ,если какой то клиент что-то отправил и сработал метод on_message(self, message) в обработчике.
Что нужно: Хотелось бы, чтобы сервер мог одновременно отправлять свое текущее состояние по таймингу не зависимо общаются с ним клиенты или нет. Скажем пару раз в секунду. Думал сначала про треды, но придется на каждую сессию в которой находятся 2-3 пользователя создавать отдельный тред. Сессий таких несколько тысяч. Хотелось бы, чтобы все было асинхронно.
п.с Не знал в какую тему написать в веб или в нетворк.
Офлайн
Logrus_akЧерез веб-сокет можно в любой момент отправлять сообщения клиентам, храните все подключения клиентов в списке, и отправляйте всем сообщение в нужный момент.
В чем сложность: Сервер рассылает сообщения клиентам только в случае ,если какой то клиент что-то отправил и сработал метод on_message(self, message) в обработчике.
Logrus_akКаким образом передает сообщения и принимает результат?
На сервере написано приложение, которому торнадо передает сообщения
Logrus_akМожет, но зачем? Сделать таймер и рассылку по списку коннектов.
Хотелось бы, чтобы сервер мог одновременно отправлять свое текущее состояние по таймингу не зависимо общаются с ним клиенты или нет. Скажем пару раз в секунду.
Logrus_akтреды при торнадо точно не нужны
Думал сначала про треды
Офлайн
Спасибо большое. Почитал документацию и нашел класс tornado.ioloop.PeriodicCallback - используя данный класс можно добавлять периодически выполняемые задачи. То есть,можно вызывать задачу через заданное количество времени.
Ссылки по вопросу:
http://www.tornadoweb.org/en/stable/ioloop.html#tornado.ioloop.PeriodicCallback
http://michael-xiii.blogspot.com/2012/02/tornado-periodiccallback.html
Отредактировано Logrus_ak (Дек. 25, 2013 00:01:37)
Офлайн