2010-08-20 3 views
27

Мне интересно, как интегрировать node.js в приложение rails (для цели обучения).Ruby on rails и Node.js

Основано на учебнике Майкла Хартля (http://railstutorial.org/) Я осознал базовый твитерский клон с рельсами и хочу получать пользовательские микропосты в режиме реального времени без использования кометы или безжалостной игры. (приложение размещено на heroku)

На данный момент я вижу только пример с узлами node.js (http://howtonode.org/grasshopper-shoutbox), но ничто не слилось с рубином на приложении rails. Я был бы очень благодарен, если кто-то знает хороший учебник или даст мне несколько моментов, чтобы начать, чтобы это сделать.

Спасибо!

ответ

13

Как сказал Шрипад, я хотел бы попытаться создать приложение с помощью узла. Geddy будет чувствовать себя знакомым (приступая к работе в любом случае), если у вас есть опыт работы с Rails. Примечание. У меня нет опыта работы в реальном мире с Geddy, но это лучшая структура Rails, которую я видел до сих пор. Для настойчивости вы можете использовать SQLite, PostgreSQL или CouchDB, как и с Rails. Я думал о том, как общаться между Rails-приложением и узлом без какого-либо посредника. В нашем рабочем проекте мы используем Redis в качестве посредника между Rails и Node. Rails публикует сообщения Redis, узел вытягивает сообщения из Redis. Я не мог найти хороший способ или примеры проектов, чтобы избежать среднего слоя связи в личном проекте, поэтому я пошел с той же настройкой. Хорошая новость - это модули Node Redis, и после того, как вы все установили, легко протестировать push-сообщения взад и вперед.

+2

+1 для Гедди. Обязательно проверьте это сейчас. :) –

+0

Спасибо, ребята! – user425891

+2

Вы также можете проверить http://www.perfectline.ee/blog/optimizing-ruby-on-rails-application-with-nodejs для аналогичного случая. –

4

Если вы ищете создание приложений в режиме реального времени, перейдите по ссылке node.js (высокий уровень параллелизма). Вы действительно не можете интегрировать node.js в приложение rails. Тем не менее, вы можете настроить узел узла на другом порту с настроенными настройками api и websockets, а затем связать ваше приложение rails с этим сервером. Это PITA, чтобы сделать такую ​​настройку. Вы скорее создадите все веб-приложение в самом узле. Однако, если вам нужны какие-либо рельсы, которые не используют juggernaut, я бы предложил http://www.pusherapp.com.

Его чрезвычайно просто настроить нажим с помощью Pusher.

3

Это уже было сделано. На самом деле не NodeJs, а фреймворк, построенный сверху, если он. Яда, болтовня, болтовня ... проверить это: https://github.com/1602/express-on-railway

+0

Железная дорога и Гетти слишком захламлены. Я скучаю по чистоте Rails :( – imjp

0

** Запуск узла вдоль боковой на сервере рельсы **

Если вы хотите, чтобы ваш межтереть Rails приложения с узлом вы можете использовать node-rails gem

Node Rails позволит вам запустить сервер Node рядом с вашим Rails-приложением и иметь две аутентификации общего доступа. NodeRails предполагает, что вы используете Devise для вашей аутентификации. Node-Rails использует [redis gem] [2], поэтому вам нужно будет установить это. Learn more about using npm packages on Rails.