2015-01-21 19 views
5

Tôi thích crossbar.io và cách hoạt động (cá nhân). Nhưng tôi muốn biết cách chúng tôi có thể thiết lập kiến ​​trúc cho một ứng dụng trò chuyện động thông thường bằng Autobahn (Crossbar.io).Cách định cấu hình Autobahn (crossbar.io) cho các phòng trò chuyện động?

Trò chuyện động ở đây có nghĩa là phòng trò chuyện cá nhân được tạo cho mỗi url.

Ví dụ: http://www.myapplication.com/chat?roomId=123, tạo ra một phòng chat đăng ký vào chủ đề "com.myapp.chat123".

http://www.myapplication.com/chat?roomId=456, tạo ra một phòng chat đăng ký vào chủ đề "com.myapp.chat456".

Chúng tôi cần lưu trữ các tin nhắn trò chuyện trong Cơ sở dữ liệu để tham khảo trong tương lai, vì Autobahn không có độ bền tin nhắn.

Bây giờ câu hỏi của tôi là:

  1. Nếu mỗi phòng chat sử dụng chủ đề riêng biệt, thì làm sao chúng ta có thể đăng ký cho các tin nhắn trong máy chủ (kể từ khi chúng tôi không thể đăng ký sử dụng mẫu như bây giờ) ?

  2. Vì chúng tôi sẽ sử dụng chủ đề riêng cho từng phòng, cách chúng tôi thực hiện xác thực và ủy quyền trong Crossbar.io?

  3. Tôi không thể tìm thấy tài liệu Javascript để đặt các tính năng như đã đề cập here. Tìm nó ở đâu?

  4. In this SO answer, đã được đề cập rằng crossbar.io cung cấp các sự kiện meta cho phiên tham gia hoặc để lại trên Bộ định tuyến. Có cách nào để biết khi nào người dùng đăng ký hoặc hủy đăng ký cụ thể chủ đề thay vì Router tham gia hoặc rời khỏi?

  5. Bạn có thể giải thích cách định cấu hình các tính năng hồ sơ nâng cao có sẵn với Phiên bản hiện tại của Crossbar.io (trong Javascript, trình duyệt hoặc Node.js) không?

  6. Bạn có thể giải thích chi tiết về tính năng Event History không? Và làm thế nào để cấu hình nó?

Trả lời

3

Tôi sẽ trả lời câu hỏi của bạn từng người một:

  1. Ít nhất, đó là khách hàng của bạn có nhu cầu đăng ký vào chủ đề của mình (chính xác cho tôi nếu tôi hiểu sai), sau đó, bạn cần lưu trữ danh sách ID chủ đề liên quan đến người dùng trong cơ sở dữ liệu của bạn và khi khách hàng của bạn kết nối với máy chủ, bạn gửi cho anh ấy danh sách ID chủ đề và để anh ấy đăng ký tất cả chúng.
  2. Quá trình xác thực/ủy quyền không liên quan gì đến một chủ đề riêng biệt. Bạn có thể làm điều gì đó tương tự:

    • Có hai cách để xác thực, ẩn danh và WAMP-CRA. Sau đó, bạn chỉ định vai trò cho khách hàng được kết nối ẩn danh và vai trò khác cho khách hàng được xác thực (vai trò này có thể khác theo cơ sở dữ liệu, ví dụ: người dùng, quản trị viên, người kiểm duyệt, ...Khi được xác thực, đăng ký một chủ đề cần được ủy quyền (được thực hiện bởi người ủy quyền động, bạn có thể xem cách thực hiện: https://github.com/tavendo/AutobahnPython/blob/master/examples/twisted/wamp/authorization/router.py - về cơ bản, nó giống nhau, ngoại trừ bạn quên điều định tuyến và bạn tập trung vào phương thức ủy quyền)
    • Sau đó, bạn ủy quyền dựa trên một số thứ như Kiểm soát truy cập.
  3. Thật không may, tài liệu là khá lỗi thời, bạn nên yêu cầu nó trên Danh sách gửi thư có tính năng bạn muốn sử dụng và cách bạn có thể sử dụng chúng.
  4. Như tôi đã nhớ, có một sự kiện meta on_subscribe/on_unsubscribe.
  5. Tính năng nâng cao có thể được định cấu hình trong tệp cấu hình của Crossbar, chúng cũng có thể là đối số được chuyển đến các cuộc gọi xuất bản/đăng ký/cuộc gọi/đăng ký.
  6. Tôi không phải là một nhà phát triển cốt lõi của Autobahn, nhưng nhiều như tôi hiểu, nó là một tính năng cung cấp cho bạn một cách để có được tất cả các dữ liệu được công bố trước đó từ một chủ đề (X những người cuối cùng, từ một dấu thời gian , sau ID).

Tôi biết rằng đôi khi Autobahn khó theo tài liệu, nhưng các ví dụ có thể giúp ích rất nhiều, và ở đây có rất nhiều điều thú vị: https://github.com/crossbario/crossbarexamples (bao gồm Xác thực, MetaAPI, Mẫu).

Tôi hy vọng rằng tôi đã trả lời hầu hết các câu hỏi của bạn, nhưng nếu có những điều bạn không hiểu, tôi khuyên bạn nên để truy cập danh sách gửi thư, đây là cách tốt nhất của bạn, theo ý kiến ​​của tôi .

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