Стріми по старкрафту замінили мені телик. Дивлюся в основному на сайтах http://sc2tv.ru, http://goodgame.ru, http://vodportal.ru. Та одне напрягало, що приходилося по всіх них клацати щоб побачити що сьогодні йде і вибрати якийсь один. І як постійні читачі вже напевно здогадалися, я написав свій "велосипед", а точніше міні-сайтик який збирає інфу про стріми і показує її в одному місці.
Тож зустрічайте - http://stream.tutamc.com/ :)
Зверніть увагу на дизайн... який трішки схожий маковський. Не подумайте що мені нефіг було робити і я рисував ті кнопочки :), то просто фронтенд написаний на Капучіно. То такий цікавий фреймворк - суміш маковського апі і яваскрипта. Цікавенька штучка.
Загальна ж внутрішня схема така. Що як проксі сервер стоїть Nginx - який віддає правильно статику, плюс кешує запити до Node.JS. Node.JS віддає лише змінену першу сторінку в яку вставляє онлайн-стріми, щоб після завантаження відразу була таблиця з стрімами. Далі Капучіно юзаючи лібу Socket.IO підключається до Node.JS і жде оновлень до таблиці. Коли щось нове з'являється - відразу відображається. Node.JS зберігає масив всіх онлайн клієнтів, і чекає оновлень від redis. По крону запускається скрипт на Пітоні який юзаючи лібу PyQuery достає потрібну інфу, а далі через команди pub/subscribe посилає сигнал на Node.JS, що є нові дані. Все це дає таку круту реалтайм схему, що Пітон парсить сайт - відразу посилає результат на Node.JS, а Node.JS через вебсокети на всіх клієнтів. Коли розповідаю про схему то розумію наскільки далеко технології в вебі залізли порівнюючи з тим часом коли робив першу свою домашню сторінку на ПХП )
