2012-07-09 13 views
6

के बाद सत्र जानकारी प्राप्त करें मैं डेल्फी रीस्ट डेटा स्नैप सर्वर का उपयोग करके सत्र जानकारी पुनर्प्राप्त करने का तरीका निर्धारित करने का प्रयास कर रहा हूं।डेल्फी XE2 डेटासैप सत्र प्रबंधन - पेज रीलोड

मुझे पता है कि, जब एक ही ग्राहक पृष्ठ पर, आपके पास TDSSession विधि GetThreadSession का उपयोग कर वर्तमान थ्रेड सत्र तक पहुंच है।

हालांकि, मैं क्या करना चाहता हूं, सत्र में (डेटाडेटा) स्टोर डेटा है और उपयोगकर्ता इसे पृष्ठ 1 से पृष्ठ 2 पर ले जाने पर पुनः प्राप्त करने में सक्षम हो सकता है। वर्तमान में, यदि उपयोगकर्ता किसी दूसरे पृष्ठ पर जाता है, तो सत्र खो जाता है और एक नया बनाया जाता है, इस प्रकार सत्र में डेटा खो देता है जिसे मैंने पहले सेट किया था।

मैंने TDSSessionManager.SetThreadSession (sessionid) के साथ खेलने का प्रयास किया है - लेकिन मुझे लगता है कि यह काम नहीं कर रहा है।

मैंने बहुत प्रशंसित मार्को कैंटू श्वेत पत्र की समीक्षा की है, हालांकि, यह इस मुद्दे का समाधान प्रदान नहीं करता है।

कोई भी मदद जो मैं प्राप्त कर सकता हूं वह बहुत अच्छा होगा - भले ही यह 'हे, यह विषय पुस्तक एक्स' में शामिल है।

धन्यवाद!

उत्तर

0

मुझे विश्वास है कि आपको क्या करना है LifeCycle उदाहरण Session (राज्य में) की संपत्ति सेट करें। आपके प्रश्न से ऐसा लगता है कि आप वर्तमान में Invocation (स्टेटलेस) का उपयोग कर रहे हैं।

+0

माफी - जो शुरुआत में उपलब्ध कराने के लिए सहायक जानकारी होगी। टीडीएसएसरवर क्लास की वर्तमान में लाइफसाइकल संपत्ति सत्र में सेट है। – ConBran

+0

मुझे लगता है कि HTTP 1.1 KeepAlive कनेक्शन प्रभावी होने पर यह बॉक्स से बाहर काम करना चाहिए। –

+1

बॉक्स के बाहर, आरईएसटी अनुप्रयोग एक सर्वर के रूप में TIdHTTPWebBrokerBridge का उपयोग करते हैं। डिफ़ॉल्ट रूप से, KeepAlive प्रॉपर्टी 'झूठी' है, इसलिए, आपके सुझाव के बाद, जब सर्वर प्रारंभ होता है, तो मैं KeepAlive प्रॉपर्टी को 'true' पर सेट कर रहा हूं, हालांकि, समस्या दुर्भाग्य से बनी हुई है। – ConBran

1

TDSSessionManager.SetThreadSession (sessionid) सत्र.sessionname के साथ काम करता है।

प्लस सुनिश्चित करें कि आपका जीवन चक्र सत्र में सेट है (जैसा कि टोंड्रेज द्वारा बताया गया है)।

यदि आप अपने ग्राहक को दोबारा जोड़ते हैं। एक नया सत्र शुरू हो गया है। तो आप अपने डेटासेट कनेक्शन को खोलना चाहते हैं।

या आप जीवन चक्र को सर्वर पर सेट कर सकते हैं और क्लाइंट-सत्र स्वयं को प्रबंधित कर सकते हैं।

संपादित करें: बाकी सर्वर स्टेटलेस हैं। इसलिए आपको उस पृष्ठ को स्टोर करने की आवश्यकता है जिसे आप ग्राहक पर हैं। और सर्वर

1

से आवश्यक पृष्ठ क्वेरी करें आपको सत्र जानकारी संग्रहीत करने के लिए कुकी का उपयोग करने के लिए क्लाइंट साइड जावास्क्रिप्ट को ट्विक करना होगा। आप सर्वर साइड सक्रिय वस्तुओं के लिए सत्र सत्र जीवन चक्र का उपयोग रखना चाहते हैं

JavaScript Client Sessions

के अंतिम भाग देखें।

+0

पेज लोड के बीच सत्र आईडी को याद रखने के लिए, आपको सत्र कुकी सक्षम करने की आवश्यकता है। ऐसा करने के लिए, उदाहरण के लिए, कॉल करें: initSessionData (सत्य, "chat_"); –

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