Pull to refresh

SocketStream — web-фреймворк для Node.js


В этой статье я приведу обзор веб-фреймворка 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 на реальный «невиртуальный» linux.

Установка SocketStream
  1. Начнем с пакетов, необходимых для установки SocketStream (build-essential, git-core и т.д.)

    sudo apt-get install build-essential automake git-core curl libssl-dev -y

  2. Устанавливаем 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

  3. Устанавливаем 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

  4. Теперь установим менеджер пакетов npm

    curl http://npmjs.org/install.sh | sudo sh

  5. Используя 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 и пр.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.