@Alexey Levzhinsky

Faye


Faye -- новая система обмена асинхронными сообщениями, основанная на WebSocket. Она доступна как для Rails, так и Node.js.

Faye была выбрана для чата и обновления историй без перезагрузки страницы планирования на Трекере. Изначально faye запускали как Rack middleware. При этом варианте rails сервер вместе с faye запускаются одной командой: "rails s thin". Работало все хорошо, и даже шустро, поэтому запустили на продакшене. Однако, через некоторое время оперативной памяти на сервере стало не хватать. Как выяснилось, трекеровский https-прокси не работает корректно с сообщениями типа keep-alive, которые активно порождает faye во время работы, и это породило утечку памяти. Кстати, чат, который разрабатывался для изучения этой технологии, а затем был интегрирован в трекер, отлично работает как отдельное приложение. На трекере решили попробовать альтернативный способ запуска -- faye-сервер на EventMachine. После этого на стейджинге снова столкнулись с проблемой пересылки SSL-трафика. Сообщения faye-серверу приходят, а вот обратно их не хотят получать некоторые браузеры (в частности, Firefox сообщает об ошибке "Security error").

Команда разработчиков Трекера борется с данной проблемой и в ближайшее время собирается окончательно победить faye и сделать Трекер еще лучше :)

blog comments powered by Disqus