2012-12-10 26 views
7

Tôi có một phụ trợ django được thiết lập cho người dùng đăng nhập và quản lý người dùng, cùng với toàn bộ bộ mẫu của tôi được khách truy cập sử dụng trang web để hiển thị tệp html. Tuy nhiên, tôi đang cố gắng thêm chức năng thời gian thực vào trang web của mình và tôi tìm thấy một thư viện hoàn hảo trong Node.Js cho phép hai người dùng nhập vào một hộp văn bản và văn bản xuất hiện trên cả hai màn hình của họ. Có thể hợp nhất hai backend không?Có thể sử dụng Django và Node.Js không?

Trả lời

9

Hoàn toàn có thể (và đôi khi cực kỳ hữu ích) để chạy nhiều back-end cho các mục đích khác nhau. Tuy nhiên, nó mở ra một vài loại sâu, tùy thuộc vào loại hệ thống mà bạn mong đợi, ai trong nhóm của bạn, v.v.

  • Nhà nước. Bạn sẽ muốn trạng thái phiên được chia sẻ giữa các máy chủ ứng dụng khác nhau. Cách dễ nhất để làm điều này là lưu trữ trạng thái phiên bên ngoài theo cách không theo khuôn khổ. Tôi muốn đề xuất các đối tượng JSON trong một kho khóa/giá trị và bạn có thể sẽ được hưởng lợi từ lược đồ JSON.
  • Tên miền/định tuyến. Bạn sẽ cần cookie đăng nhập của mình để có sẵn cho cả hai máy chủ ứng dụng, có nghĩa là hoặc một tên miền được định tuyến bởi Apache/Nginx hoặc các tên miền phụ riêng biệt được định tuyến qua DNS. Tôi muốn đề xuất tên miền phụ riêng biệt cho các lý do sau đây
  • Websockets. Tôi có thể đã lỗi thời, nhưng với kiến ​​thức của tôi, Apache và Nginx cũng không hỗ trợ proxy websockets, có nghĩa là nếu bạn muốn sử dụng, bạn sẽ hy sinh tính linh hoạt của việc sử dụng máy chủ http làm proxy ứng dụng và thay vào đó hiển thị trực tiếp Node qua tên miền phụ.
  • Yêu cầu không được chỉ định. Những thứ như giám sát, ghi nhật ký, thông báo lỗi, xây dựng hệ thống, kiểm tra, tích hợp/triển khai liên tục, tài liệu, v.v. tất cả cần phải được mở rộng để hỗ trợ loại thành phần mới
  • Kỹ năng. Bạn sẽ phải trả bằng thời gian hoặc tiền bạc cho các bộ kỹ năng cần thiết để quản lý kiến ​​trúc ứng dụng phức tạp hơn

Vì vậy, lời khuyên của tôi sẽ suy nghĩ rất kỹ về việc bạn có cần điều này không. Có thể có rất nhiều thời gian và suy nghĩ liên quan.

Cập nhật: Thực tế, các công ty đang phát triển chuyên về việc thêm thời gian thực vào các trang web hiện có. Tôi sẽ không đặt tên bất kỳ tên nào, nhưng nếu bạn tìm kiếm 'thời gian thực' trên thị trường tiện ích cho nền tảng lưu trữ (ví dụ: Heroku) thì bạn sẽ tìm thấy chúng.

Cập nhật 2: Nginx hiện có support for Websockets

2

Bạn không thể hợp nhất chúng. Bạn có thể gửi tin nhắn từ Django đến Node.Js thông qua một số hệ thống xếp hàng như Reddis.

0

Nếu bạn thực sự muốn sử dụng hai chương trình phụ trợ, bạn có thể sử dụng cơ sở dữ liệu được hỗ trợ bởi cả hai chương trình phụ trợ.

Mặc dù tôi không khuyến nghị sử dụng.

0

Hãy thử Django, Node.js, Socket.io và Reddis.

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