В этой статье я приведу обзор веб-фреймворка SocketStream, затем покажу как его установить и начать работу.
Что такое SocketStream
Socketstream — это фреймворк для Node.js, позволяющий создавать одностраничные web-приложения, работающие в реальном времени.
Данные между сервером и клиентом передаются в асинхронном режиме через web-сокеты как высокоскоростные двунаправленные RPC-вызовы, что позволяет создавать по-настоящему быстрые веб-приложения со сверх-отзывчивостью.
Обзор функционала
Основные возможности:
- Настоящая двусторонняя асинхронная связь на основе web-сокетов
- Код можно писать на CoffeScript или JavaScript на ваш выбор
- Вы можете свободно обращаться к функционалу серверного кода со стороны
клиентского и наоборот - Можно использовать хранилище Redis, например, для быстрого получения
сессии подключенных клиентов или любых других необходимых данных - Встроенная модульная система авторизации пользователей (разработчики
обещают поддержку Facebook Connect и других внешних служб авторизации) - Интерактивная консоль, позволяющая проводить отладку серверного кода
(аналог браузерных консолей) - События, возникающие на стороне сервера. Например, вы можете назначить обработчики для событий подключения или отключения пользователей
- Лицензия MIT
Клиентская часть:
- Работает с последними версиями Chrome, Safari и Firefox используя нативные web-сокеты браузеров
- Работает в остальных браузерах (IE, Opera, Firefox<6) благодаря возможностям
Socket.IO - Работает с мобильными устройствами — iPad, iPhone с Mobile Safari (iOS 4.2 и выше) по wi-fi или 3g. На Android работает через flashsockets
- Встроенный менеджер ресурсов автоматически запаковывает и сжимает (с помощью UglifyJS) все клиентские ресурсы. Это позволяет экономить пользовательский трафик и увеличить скорость работы приложения.
- Изначально поддерживает функционал jQuery, но при этом не зависит от него. Т.е. у вас не возникнет проблем и с другими JS-фреймворками
- Поддерживает jQuery Templates
- Позволяет легко добавлять любые другие клиентские библиотеки (Mootools, Dojo, Sencha и т.д.)
- Стартовая HTML-страница может быть написана как на Jade, так и на обычном HTML
- CSS можно писать, используя синтаксис Stylus
Распределенный хостинг:
- Поддержка HTTPS
- Распределенная архитектура фронт-енда и бэк-енда разделенная легким
слоем абстракции RPC - Позволяет запускать фреймворк в один процесс без необходимости установки
библиотек написанных на C. Подходит для среды разработки Cloud9 IDE - Легко масштабируем благодаря использованию библиотеки обмена
сообщениями ZeroMQ - Фротн-енд серверы могут быть полностью изолированы от Redis и базы данных
Установка и запуск
Я решил выбрать виртуальную машину с Debian (инструкция сработает и для Ubuntu).
В качестве виртуальной машины я использую VirtualBox.
Установка системы
Создаём виртуальную машину в среде VirtualBox. Настройки оставляем по умолчанию. Размер ОЗУ — 512Мб.
Рис. 1 — Создаем виртуальную машину
Рис. 2 — Процесс установки Debian
Установка openssh-server
Я предпочитаю работать с виртуальной машиной через ssh, поэтому первым делом установлю на нашу тестовую систему openssh-server.
Этот этап можно пропустить, если вы предпочитаете работать прямо в «виртуалке», либо ставите SocketStream на
Установка SocketStream
- Начнем с пакетов, необходимых для установки SocketStream (build-essential, git-core и т.д.)
sudo apt-get install build-essential automake git-core curl libssl-dev -y
- Устанавливаем Redis
cd ~
wget http://redis.googlecode.com/files/redis-2.2.4.tar.gz
tar -xvzf redis-2.2.4.tar.gz
cd redis-2.2.4
make
sudo make install
env redis-server > /tmp/redis.log 2>&1 &
Рис. 3 — Установка Redis
- Устанавливаем Node.js
Разработчики SocketStream советуют ставить версии 0.4.x.
В нашем случае это версия 0.4.9.
cd ~
wget http://nodejs.org/dist/node-v0.4.9.tar.gz
tar zxvf node-v0.4.9.tar.gz
cd node-v0.4.9
./configure
make # займет несколько минут
sudo make install
Рис. 4 — Установка Node.js
- Теперь установим менеджер пакетов npm
curl http://npmjs.org/install.sh | sudo sh
- Используя npm, установим SocketStream
sudo npm install socketstream -g
Флаг -g означает, что модуль (в данном случае SocketStream) будет установлен глобально.
Готово. SocketStream установлен.
Создание нового проекта
Новый проект назовем habr.
cd ~
socketstream new habr
Далее запускаем сервер SocketStream.
cd habr
socketstream start
Рис. 5 — Запуск SocketStream
Сервер запущен на 3000 порту, пробуем открыть в браузере.
Рис. 6 — Страница приветствия SocketStream
Итог
Прочитав эту статью, вы познакомились с функциональными возможностями фреймворка SocketStream. Используя инструкцию по установке, вы можете самостоятельно попрактиковаться в его использовании. Если у вас возникнут какие-либо вопросы, я с удовольствием на них отвечу.
Источники
Проект на GitHub
Статья-анонс на Opennet
PS: Если тема показалась вам интересной, то в следующей статье я мог бы рассказать на примере простого проекта про структуру файлов проекта SocketStream, описать настройку HTTPS и пр.