मैं एक नाखून कोडित php monstrosity को प्रतिस्थापित करने के लिए एक रेल ऐप को एकसाथ प्राप्त करने का प्रयास कर रहा हूं। वर्तमान अवतार एक गैर-रेल डीबी से डेटा खींच रहा है, इसे रेल डीबी में डाल रहा है और फिर इसे दृश्यों में प्रदर्शित कर रहा है। डीबी मुख्य रूप से तापमान रीडिंग के साथ आबादी है जो हर कुछ सेकंड में जोड़े जाते हैं। मैं बिना किसी समस्या के रेल में स्थिर-आईएसएच पृष्ठ प्रदर्शित कर सकता हूं, लेकिन एक्शनकेबल/रीयलटाइम डेटा जोड़ने की कोशिश करने से समस्याग्रस्त साबित हुआ है। ज्यादातर चीजें ठीक से काम कर रही प्रतीत होती हैं, लेकिन जब मैं अपने चैनल पर प्रसारित करता हूं, तो यह mychannel.coffee में प्राप्त फ़ंक्शन को हिट नहीं करता है।एक्शनकेबल ब्रॉडकास्ट प्राप्त नहीं किए गए जेएस फ़ंक्शन
मेरे सेटअप: सर्वर - यात्री (कार्यकारी यात्री शुरू बंडल) नौकरियां - Resque ActionCable - Redis
डाटा एक नौकरी कि कच्चे एसक्यूएल पकड़ लेता है और नए रिकॉर्ड बनाता द्वारा legacydb से आयात किया जाता। इसके बाद, एक और नौकरी चैनल के लिए प्रसारण।
समस्याएं एक्शनकेबल से आ रही हैं, मुझे लगता है। जेएस को ट्रिगर करने के लिए मुझे लगता है कि सभी उदाहरणों के लिए उपयोगकर्ता इनपुट की आवश्यकता है, ऐसा लगता है। हालांकि, मैं सर्वर की ओर से सख्ती से चीजों को ट्रिगर करने की कोशिश कर रहा हूं। यह काम:
class DatabroadcastJob < ApplicationJob
queue_as :default
self.queue_adapter = :resque
def perform
ActionCable.server.broadcast 'dashboard_channel', content: render_thedata
end
private
def render_thedata
dataArr =[Data1.last, Data2.last, Data3.last]
ApplicationController.renderer.render(partial:
'dashboard/data_tables', locals: {item: dataArr})
end
end
काम करता है। यह काम करता हैं। मैं डैशबोर्ड_चैनल को मारने वाला प्रसारण देखता हूं। हालांकि, डैशबोर्ड.coffee में कुछ भी प्रसारण द्वारा ट्रिगर नहीं हो जाता है। यह अविश्वसनीय रूप से भ्रमित है।
Dashboard.coffee
App.dashboard = App.cable.subscriptions.create "DashboardChannel",
connected: ->
# Called when the subscription is ready for use on the server
disconnected: ->
# Called when the subscription has been terminated by the server
received: (data) ->
# Called when there's incoming data on the websocket for this channel
alert data['content']
कुछ नहीं होता। लॉग प्रसारण दिखाते हैं लेकिन कुछ भी dashboard.coffee हिट नहीं करता है और ब्राउज़र में एक चेतावनी उठाता है। क्या मैं इस चैट के सभी उदाहरणों के कारण गलत तरीके से सोच रहा हूं? क्या कोई और जगह है जहां मैं प्रसारण को पकड़ता हूं और ग्राहकों को धक्का देता हूं जब केवल सर्वर पक्ष बदलता है?
यदि इसे हल करने के लिए किसी अन्य जानकारी की आवश्यकता है, तो कृपया मुझे बताएं। यह मुद्दा अब मुझे मानसिक रूप से चला रहा है।
मार्गदर्शन के लिए धन्यवाद।मैं प्रसारण करने के लिए काम करने में सक्षम था लेकिन किसी कारण से, यह चेतावनी पॉप अप नहीं करना चाहता था। मेरे अंतिम उपयोग के मामले के लिए, मैंने आंशिक पुन: प्रस्तुत करने के लिए डैशबोर्ड नियंत्रक की कॉफ़ीस्क्रिप्ट में jQuery फ़ंक्शंस बनाना समाप्त कर दिया। मैं वहां भी समस्याओं में भाग गया क्योंकि मैं एक मूर्ख था और div विशेषता के लिए "आईडी" के बजाय "नाम" इस्तेमाल किया था। चीयर्स! – Scaylos
एक बात जो मैं जोर देउंगा वह 'stream_for' और' stream_from' के बीच प्रमुख * अंतर * है। मुझे खोजने में थोड़ी देर लग गई। मैं 'stream_for' का उपयोग कर नामित स्ट्रीम पर प्रसारण कर रहा था और यह काम नहीं करता है, मुझे 'stream_from' की आवश्यकता है। इस पर ध्यान दें। –