2012-10-26 10 views
8

में सर्वर से क्लाइंट (ओं) में ईवेंट भेजना क्या सर्वर से घटनाओं को संग्रहित किए बिना सभी या कुछ क्लाइंट को ईवेंट भेजने का कोई तरीका है।मेटीर

मैं ग्राहकों को कुछ कस्टम डेटा के साथ ईवेंट भेजना चाहता हूं। जबकि संग्रह के साथ ऐसा करने में उल्का बहुत अच्छा है, इस मामले में अतिरिक्त जटिलता और भंडारण की आवश्यकता नहीं है।

सर्वर पर मोंगो स्टोरेज या स्थानीय संग्रह की कोई आवश्यकता नहीं है। क्लाइंट को केवल सतर्क रहने की आवश्यकता है कि उसे सर्वर से एक ईवेंट प्राप्त हुआ और डेटा के अनुसार कार्य करें।

मुझे पता है कि यह सॉक्स के साथ काफी आसान है लेकिन सर्वर से सॉक्स तक पहुंचना बहुत मुश्किल है।

Meteor.Error ऐसा कुछ करता है।

उत्तर

4

पैकेज अब पदावनत है और संस्करणों के लिए काम नहीं करते> 0,9

आप नीचे दिए गए पैकेज जो मूल रूप से ग्राहकों को-server-ग्राहकों से संदेशों का प्रसारण करने के उद्देश्य है का उपयोग कर सकते

http://arunoda.github.io/meteor-streams/

stream = new Meteor.Stream('streamName'); // defined on client and server side 

if(Meteor.isClient) { 
    stream.on("channelName", function(message) { 
     console.log("message:"+message); 
    }); 
} 

if(Meteor.isServer) { 
    setInterval(function() { 
     stream.emit("channelName", 'This is my message!'); 
    }, 1000); 
} 
:

कोई संग्रह, कोई MongoDB के पीछे उपयोग इस प्रकार (परीक्षण नहीं) है

+0

क्या इस पैकेज के समान कोई विकल्प है? –

+0

https://atmospherejs.com/rocketchat/streamer एक व्यवहार्य विकल्प की तरह दिखता है – TechplexEngineer

2

आप संग्रहों का उपयोग करना चाहिए।

"जोड़ा जटिलता और भंडारण" एक कारक नहीं है यदि आप जो कुछ करते हैं वह संग्रह बनाते हैं, इसमें एक ही संपत्ति जोड़ते हैं और उसे अपडेट करते हैं।

संग्रह सर्वर और क्लाइंट के बीच डेटा संचार के लिए केवल एक आकार हैं, और वे मोंगो पर निर्माण करते हैं, जो वास्तव में अच्छा है यदि आप उन्हें डेटाबेस की तरह उपयोग करना चाहते हैं। लेकिन उनके सबसे बुनियादी आधार पर, वे कहने का एक तरीका हैं "मैं एक्स के रूप में जाने वाली कुछ जानकारी स्टोर करना चाहता हूं", जो प्रकाशित/सब्सक्राइब आर्किटेक्चर में हुक करता है जिसे आप लाभ लेना चाहते हैं।

भविष्य में, अन्य डेटाबेस मोंगो के अतिरिक्त सामने आएंगे। मैं देख सकता था कि कुछ चरण में एक स्मार्ट पैकेज हो रहा है जो आपके द्वारा प्रस्तावित सबसे बुनियादी कार्यक्षमता पर संग्रह को स्ट्रिप्स करता है। शायद आप इसे लिख सकते हैं!

+0

तो, यदि आप एक डिवाइस से दूसरे डिवाइस में एक्सेलेरोमीटर डेटा स्ट्रीम करना चाहते हैं, तो संग्रहों का उपयोग स्ट्रीम दर को प्रभावित नहीं करेगा? मैं एक डिवाइस से जितनी जल्दी हो सके स्ट्रीम करना चाहता हूं जिसमें एक्सेलेरोमीटर डेटा दूसरे डिवाइस पर है जो वेबजीएल ग्राफिक्स को आकर्षित करने के लिए डेटा का उपयोग कर रहा है। मुझे लगता है कि संग्रह की आवश्यकता को खत्म करना, और केवल डेटा स्ट्रीम करना, तेज़ होगा। – trusktr

1

मुझे लगता है कि संदेश भेजने के लिए @Rui और संग्रह संग्रह का उपयोग करने का तथ्य है।
इसी समय, एक बार आप इस तरह के संदेश के कई है चारों ओर भेजने के लिए एक संग्रह सेटिंग्स या इसी तरह की तरह कुछ नामित करने के लिए जहां आप इन रखने के लिए सुविधाजनक है।


1

बेस्ट पैकेज मैं पाया है लहरानेवाला है।

Streamy.broadcast('ddpEvent', { data: 'something happened for all' }); 

ग्राहक पर संदेश के लिए सुनो:

// Attach an handler for a specific message 
Streamy.on('ddpEvent', function(d, s) { 
    console.log(d.data); 
}); 

यह आप सभी के लिए भेजने के लिए सिर्फ एक विशिष्ट यूजर

सभी को https://github.com/YuukanOO/streamy

meteor add yuukan:streamy 

संदेश भेजें अनुमति देता है, या एक उपयोगकर्ता को संदेश भेजें (आईडी द्वारा)

var socket = Streamy.socketsForUsers(["nJyQvECmkBSXDZEN2"])._sockets[0] 
Streamy.emit('ddpEvent', { data: 'something happened for you' }, socket); 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^