की सदस्यता ली है मैं वर्तमान में देखकर क्या चैनलों एक Redis पब/उप आवेदन मेरे पास में की सदस्यता ली है में दिलचस्पी है।Redis प्रकाशित करें/सदस्यता लें: देखो क्या चैनलों वर्तमान में
user:user_id
इस का कारण यह है कि मैं कौन है "ऑनलाइन" को देखने के लिए सक्षम होना चाहते हैं: एक ग्राहक हमारे सर्वर से कनेक्ट करते हैं, तो हम उन्हें एक चैनल ऐसा दिखता है जैसे रजिस्टर। मैं वर्तमान में बिना किसी चैनल के संदेशों को अंधेरे से आग लगाना जानता हूं कि क्लाइंट ऑनलाइन है या नहीं, क्योंकि यह महत्वपूर्ण नहीं है कि उन्हें इन प्रकार के संदेश प्राप्त हों।
मेरा एप्लिकेशन स्मार्ट बनाने के प्रयास में, मैं यह जानना चाहता हूं कि कोई ग्राहक ऑनलाइन है या पब/उप एपीआई का उपयोग नहीं कर रहा है, और यदि वे ऑफ़लाइन हैं, तो उनके संदेशों को एक अलग रेडिस कतार में कैश करें जब वे ऑनलाइन वापस आते हैं तो मैं उन्हें धक्का दे सकता हूं।
यह 100% सही होना जरूरी नहीं है, लेकिन और अधिक सटीक यह, बेहतर है। मुझे लगता है कि जब कोई चैनल सब्सक्राइब हो जाता है तो एक सामान्य कुंजी नहीं बनाई जाती है, इसलिए मैं कुछ ऑनलाइन उपयोगकर्ताओं को खोजने के लिए
redis-cli keys user*
के रूप में कुछ भी नहीं कर सकता।
दूसरी रणनीति जो मैंने सोचा है, केवल जब भी कोई उपयोगकर्ता प्रकाशित होता है या खुद को एक चैनल से हटा देता है (जिसे ग्राहक ऑनलाइन हॉप करते हैं और ऐप बंद करते हैं तो क्लाइंट स्वचालित रूप से संभालता है)। यह जटिलता की एक अतिरिक्त परत होगी जिसे मुझे प्रबंधित करने की आवश्यकता है और मुझे उम्मीद है कि डेटा पहले से उपलब्ध डेटा के साथ एक और मामूली दृष्टिकोण है।
ग्रेट सुझाव! मुझे अभी भी वही ज़रूरत थी और ग्राहकों की संख्या प्राप्त करने के लिए चैनल को 'शून्य' प्रकाशित करके इसके आसपास लिखने में कामयाब रहा। फिर श्रोता में मैं जांचता हूं कि संदेश कोई नहीं है और यदि यह है तो इसे छोड़ दें। चीयर्स दोस्त! –