2010-08-20 49 views
27

Tôi tự hỏi làm thế nào để tích hợp node.js trên một ứng dụng đường ray (cho mục đích học tập).Ruby on rails và Node.js

Dựa trên hướng dẫn của Michael Hartl (http://railstutorial.org/) Tôi đã nhận ra bản sao Twitter cơ bản với đường ray và muốn nhận micropost người dùng trong thời gian thực mà không cần sử dụng sao chổi hoặc juggernaut. (ứng dụng được lưu trữ trên heroku)

Hiện tại, tôi chỉ thấy ví dụ với các khung công tác node.js (http://howtonode.org/grasshopper-shoutbox) nhưng không có gì được kết hợp với một ruby ​​trên ứng dụng đường ray. Tôi sẽ rất biết ơn nếu ai đó biết một hướng dẫn hay hoặc cho tôi một số điểm để bắt đầu để thực hiện điều này.

Cảm ơn!

Trả lời

13

Như Shripad đã nói, tôi sẽ xem xét cố gắng tự mình xây dựng ứng dụng của bạn bằng Node. Geddy sẽ cảm thấy quen thuộc (bắt đầu anyway) nếu bạn có kinh nghiệm với Rails. Lưu ý: Tôi không có kinh nghiệm về một ứng dụng thế giới thực với Geddy, nhưng nó là khung Rails giống như tốt nhất mà tôi đã thấy cho đến nay. Để kiên trì, bạn có thể sử dụng SQLite, PostgreSQL hoặc CouchDB, giống như bạn làm với Rails. Tôi nghĩ về cách giao tiếp giữa một ứng dụng Rails và Node mà không có bất kỳ trung gian nào. Trong dự án làm việc của chúng tôi, chúng tôi đang sử dụng Redis làm trung gian giữa Rails và Node. Rails xuất bản thư tới Redis, Node kéo thư từ Redis. Tôi không thể tìm thấy một cách tốt hay các dự án ví dụ để tránh lớp giao tiếp giữa trên một dự án cá nhân, vì vậy tôi đã đi với cùng một thiết lập. Tin tốt lành là các mô-đun Node Redis được viết và sau khi bạn cài đặt mọi thứ, bạn có thể dễ dàng kiểm tra các thông báo đẩy qua lại.

+2

+1 cho Geddy. Phải kiểm tra nó ngay bây giờ. :) –

+0

Cảm ơn các bạn! – user425891

+2

Bạn cũng có thể xem http://www.perfectline.ee/blog/optimizing-ruby-on-rails-application-with-nodejs cho trường hợp tương tự –

4

Nếu bạn đang xem xét việc tạo các ứng dụng thời gian thực, hãy truy cập node.js (đồng thời cao) một mình. Bạn thực sự không thể tích hợp node.js vào ứng dụng đường ray. Tuy nhiên, bạn có thể có một thiết lập máy chủ nút trên một cổng khác với một api và websockets được cấu hình và sau đó có ứng dụng đường ray của bạn giao tiếp với máy chủ đó. Đó là PITA để thực hiện loại thiết lập đó. Bạn thay vì xây dựng toàn bộ ứng dụng web trong chính nút đó. Tuy nhiên, nếu bạn muốn bất cứ điều gì đường ray cụ thể mà không sử dụng juggernaut sau đó tôi sẽ đề nghị http://www.pusherapp.com.

Máy chủ cài đặt cực kỳ dễ dàng sử dụng Pusher.

3

Nó đã làm. Không thực sự NodeJs nhưng một khuôn khổ được xây dựng trên đầu trang nếu nó. Yada, yada, yada ... check this out: https://github.com/1602/express-on-railway

+0

Đường sắt và Getty quá lộn xộn imo .. Tôi nhớ Rails 'sạch sẽ :( – imjp

0

** Run nút dọc theo phía máy chủ ray của bạn **

Nếu bạn muốn hòa nhập ứng dụng Rails của bạn với Node bạn có thể sử dụng node-rails gem

Node Rails sẽ cho phép bạn chạy một máy chủ Node dọc theo ứng dụng Rails của bạn và có hai xác thực chia sẻ NodeRails giả sử bạn đang sử dụng Devise để xác thực của bạn. Node-Rails sử dụng [redis gem] [2], vì vậy bạn sẽ cần phải cài đặt. Learn more about using npm packages on Rails.