मुझे कहना पड़ेगा ऊपर समाधान मुझे एक तरह से पता चला है, लेकिन अभी भी, क्या हुआ अगर मैं ग्राहक डेटा है कि निरीक्षण के साथ कनेक्ट नहीं होते हैं प्रकाशित करने की जरूरत()? या किसी संग्रह के साथ?
मेरे मामले में मेरे पास 1000 उत्पाद हैं। आगंतुकों को शामिल करने के लिए मैं यादृच्छिक संख्या के उत्पादों का टाइमस्टैम्प अपडेट करके और टाइमस्टैम्प द्वारा क्रमबद्ध संग्रह प्रदर्शित करके संग्रह को "रीफ्रेशिग" कर रहा हूं। इस आगंतुकों के लिए इंप्रेशन है कि कुछ हो रहा है।
मेरा refresh
विधि उत्पाद की संख्या लौटाता है (यह यादृच्छिक है)। मुझे उस नंबर को सभी ग्राहकों को पास करने की आवश्यकता है। मैंने यह किया, लेकिन (मुझे लगता है) बदसूरत कामकाज का उपयोग कर।
मेरा refresh
विधि Session.set('lastRandomNo', random)
सेट करता है। बीटीडब्ल्यू: मुझे नहीं पता था कि सत्र सर्वर पर काम करता है। refresh
अद्यतन उत्पाद संग्रह।
फिर ऊपर जवाब के accoriding:
Meteor.publish 'refreshedProducts', ->
self = this
uuid = Meteor.uuid()
# create a new collection to pass ProductsMeta data
self.set('products_meta', uuid, { refreshedNo: 0 })
handle = Products.find().observe
changed: (newDocument, atIndex, oldDocument) ->
self.set('products_meta', uuid, { refreshedNo: Session.get('lastRandomNo') })
self.flush()
self.complete()
self.flush()
self.onStop ->
handle.stop()
और क्लाइंट साइड पर:
ProductsMeta = new Meteor.Collection('products_meta')
# subscribe to server 'products_meta' collection that is generated by server
Meteor.subscribe('refreshedProducts')
ProductsMeta.find({}).observe
changed: (newDocument, atIndex, oldDocument) ->
# I have access to refreshedNo by
console.log ProductsMeta.findOne().refreshedNo
आप क्या सोचते हैं?
यहां विस्तृत उत्तरों के साथ एक नई पोस्ट है: http://stackoverflow.com/questions/18584757/ –