2012-01-10 30 views
6

Tôi đang sử dụng Faye để gửi tin nhắn và hoạt động tốt. Nhưng tôi muốn truy xuất các kết nối đang hoạt động cho một kênh nhất định và mọi thứ hoạt động hơi khác: Xem "list active subscribers on a channel".Tôi làm cách nào để liệt kê người đăng ký đang hoạt động bằng cách sử dụng Faye?

Tôi muốn hiển thị danh sách người dùng hiện tại đang trò chuyện trong một phòng. Tôi đã cố gắng thực hiện điều này bằng cách chặn kênh /meta/subscribe qua extensions nhưng tôi không chắc chắn cách gửi dữ liệu như tên người dùng đến máy chủ.

Một chặn thông điệp tới /meta/subscribe trông như thế này:

{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"} 

Nó muốn được tốt đẹp để gửi "username" => "foo".

Monitoring cũng thú vị, nhưng một lần nữa, có vẻ như tôi không thể gửi bất kỳ dữ liệu cụ thể nào khi đăng ký.

Có ai có kinh nghiệm với các loại vấn đề này không?

Trả lời

8

Bạn có thể đính kèm dữ liệu sử dụng một phần mở rộng phía khách hàng:

client.addExtension({ 
    outgoing: function(message, callback) { 
    if (message.channel === '/meta/subscribe') { 
     message.ext = message.ext || {}; 
     message.ext.username = 'username'; 
    } 
    callback(message); 
    } 
}); 

Những thông tin này sau đó sẽ được hiển thị để mở rộng server-side của bạn. Tuy nhiên, trước khi bạn thực hiện điều đó, hãy đọc chủ đề này: https://groups.google.com/group/faye-users/msg/53ff678bcb726fc5

4

Bạn đã cân nhắc tạo kênh để xuất bản định kỳ kênh mà người dùng hiện đã đăng ký chưa? Bạn có thể nghĩ nó giống như nhịp tim/ping với thông tin trạng thái bổ sung như người dùng và kênh mà họ có thể đăng ký.

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