Ruby on Rails
ActionCable
खोज…
टिप्पणियों
ActionCable रेल 4.x के लिए उपलब्ध था, और रेल 5 में बंडल किया गया था। यह सर्वर और क्लाइंट के बीच रीयलटाइम संचार के लिए वेबस्कॉक के आसान उपयोग की अनुमति देता है।
[मूल] सर्वर साइड
# app/channels/appearance_channel.rb
class NotificationsChannel < ApplicationCable::Channel
def subscribed
stream_from "notifications"
end
def unsubscribed
end
def notify(data)
ActionCable.server.broadcast "notifications", { title: 'New things!', body: data }
end
end
[मूल] क्लाइंट साइड (कॉफ़ीस्क्रिप्ट)
एप्लिकेशन / आस्तियों / javascripts / चैनल / notifications.coffee
App.notifications = App.cable.subscriptions.create "NotificationsChannel",
connected: ->
# Called when the subscription is ready for use on the server
$(document).on "change", "input", (e)=>
@notify(e.target.value)
disconnected: ->
# Called when the subscription has been terminated by the server
$(document).off "change", "input"
received: (data) ->
# Called when there's incoming data on the websocket for this channel
$('body').append(data)
notify: (data)->
@perform('notify', data: data)
एप्लिकेशन / संपत्ति / javascripts / application.js # आमतौर पर इस तरह उत्पन्न होता है
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
एप्लिकेशन / संपत्ति / javascripts / cable.js # आमतौर पर इस तरह उत्पन्न होता है
//= require action_cable
//= require_self
//= require_tree ./channels
(function() {
this.App || (this.App = {});
App.cable = ActionCable.createConsumer();
}).call(this);
प्रयोक्ता प्रमाणीकरण
# app/channels/application_cable/connection.rb
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_user
def connect
self.current_user = find_verified_user
logger.add_tags 'ActionCable', current_user.id
# Can replace current_user.id with usernames, ids, emails etc.
end
protected
def find_verified_user
if verified_user = env['warden'].user
verified_user
else
reject_unauthorized_connection
end
end
end
end
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow