Рубин на рельсах и Node.js - PullRequest
       15

Рубин на рельсах и Node.js

27 голосов
/ 20 августа 2010

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

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

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

Спасибо!

Ответы [ 4 ]

13 голосов
/ 20 августа 2010

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

4 голосов
/ 20 августа 2010

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

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

3 голосов
/ 23 октября 2011

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

0 голосов
/ 09 сентября 2017

** Запустите узел вдоль вашего сервера rails **

Если вы хотите интегрировать приложение Rails с Node, вы можете использовать node-rails gem

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

...