2010-11-22 28 views
8

Tôi đã tạo một Asynchronous version of Rails 3 mà tôi muốn tích hợp với việc triển khai WebSocket.Tích hợp WebSockets với Rails bằng Rack và Event Machine

Tôi đang sử dụng EventMachine, Ruby 1.9, Fibers và các thư viện có hương vị khác nhau được ghi lại bởi số độc ác.

Tôi đã xem em-websocket là trình xử lý cho các kết nối WebSocket nhưng không chắc chắn về cách tiếp cận tốt nhất để gắn kết ứng dụng này vào ứng dụng Rails.

Lý tưởng nhất, điều này sẽ làm việc trong một thời trang tương tự như Node.js với Express và Socket.io - kết nối đến nên được phát hiện và cử đến handler WebSocket hoặc đường ray thường xuyên ngăn xếp như được chỉ ra bởi các tiêu đề HTTP & vv .

TL; DR

  • WebSocket handler mà cắm vào một ứng dụng Rails hiện
  • minh bạch cử yêu cầu WebSocket đến các endpoints trong ứng dụng
+1

bạn có thể xem xét chia nhỏ câu hỏi của mình thành một loạt các dấu đầu dòng cụ thể hơn mà bạn muốn trả lời. – kanaka

Trả lời

1

Có thể thử socky? Còn bây giờ thì tốt nhất và nó khá dễ dàng để tích hợp nó với Rails (cả 2 và 3)

+0

Cool, sẽ có một cái nhìn –

+0

Socky là khá mát mẻ, nhưng không khá tích hợp vào ngăn xếp Rails cách Express và Socket.io được. Có thể sử dụng nó làm cơ sở của một thứ gì đó bị thương chặt chẽ hơn vào Rails. –

2

Kiểm tra Skinny.

Bạn sẽ cần sử dụng Thin, nhưng bạn có thể nâng cấp yêu cầu HTTP giữa chừng. Tôi sử dụng nó trong các ứng dụng Sinatra, nhưng nó cũng dễ dàng được sử dụng trong Rails.

5

Tôi biết câu hỏi này là cũ nhưng hy vọng câu trả lời này có thể giúp những người đã được hướng dẫn ở đây từ google.

Tôi đang nghiên cứu đá quý đáp ứng hai tiêu chí chính trong câu hỏi ban đầu. Đá quý được gọi là websocket-rails và đã được phát triển từ đầu để làm cho việc sử dụng WebSockets bên trong ứng dụng Rails thả đơn giản. Nó cuối cùng cũng được phát hành ổn định, nhưng có nhiều chức năng hơn mà tôi tin rằng nó cần.

Hiện tại, xử lý sự kiện rất cơ bản. Có một tệp events.rb nơi bạn ánh xạ các sự kiện phía máy khách đến các hành động của bộ điều khiển tương tự như tệp routes.rb. Tất cả các yêu cầu đến /websocket đều được chuyển đến máy chủ WebSocket được nhúng mà không cần một quy trình máy chủ riêng biệt. Mục tiêu đầy tham vọng hơn của dự án là cuối cùng di chuyển Rails sang một mẫu MVC truyền thống hơn, nơi các sự kiện trên bong bóng trình duyệt của máy khách đến máy chủ để xử lý và cập nhật một mô hình sẽ tự động kích hoạt các sự kiện trên máy khách. đại diện cho mô hình đó.

Mọi phản hồi sẽ được đánh giá cao.

Các vấn đề liên quan