संगतता
Pusher-संगत रियलटाइम बैकएंड
PushCaster तार पर Pusher Channels प्रोटोकॉल का संस्करण 7 बोलता है। जाना कॉन्फ़िगरेशन है, दोबारा लिखना नहीं — और यह पृष्ठ ठीक-ठीक उसी की सूची है जो बदलता है।
ऐप्लिकेशन दोबारा लिखने की ज़रूरत नहीं। सिर्फ़ कनेक्शन कॉन्फ़िगरेशन बदलना होता है। हर ऐप्लिकेशन में तीन से छह पंक्तियाँ; और Laravel के लिए, एक .env बदलाव और बस। न drop-in है और न zero-config: होस्ट सेट करना पड़ेगा, और क्रेडेंशियल नए हैं।
क्या वैसा ही रहता है
तार, लाइब्रेरियाँ और ऑथ हैंडशेक
यहाँ संगतता का मतलब प्रोटोकॉल है, समानता नहीं — संगत रिक्वेस्ट/रिस्पॉन्स फ़ॉर्मैट, ईवेंट अर्थ और प्रमाणीकरण योजना।
| क्षेत्र | क्या नहीं बदलता |
|---|---|
| प्रोटोकॉल | तार पर Pusher Channels प्रोटोकॉल का संस्करण 7। |
| क्लाइंट लाइब्रेरियाँ | pusher-js, Laravel Echo और आधिकारिक मोबाइल लाइब्रेरियाँ, बिना बदलाव के। |
| सर्वर लाइब्रेरियाँ | pusher-php-server, pusher-http-node, और Python, Go, Ruby व Java की लाइब्रेरियाँ। |
| हस्ताक्षर | संगत हस्ताक्षर और कैनोनिकलाइज़ेशन योजना। |
| चैनल के प्रकार | public, private, presence और private-encrypted, वही उपसर्ग। |
| सब्सक्रिप्शन प्राधिकरण | POST /pusher/auth अपने अनुरोध और जवाब का आकार वैसा ही रखता है। |
| client events | private और presence चैनल पर सब्सक्राइबर के बीच, पहले की तरह। |
| Webhooks | वही फ़ील्ड-नाम और वही हेडर, जिनमें channel_occupied, member_added और cache_miss शामिल हैं। |
परखे गए SDK संस्करण
सूचीबद्ध Pusher SDK संस्करणों के साथ संगत, उन SDK में बदलाव किए बिना।
| SDK | परखा गया संस्करण |
|---|---|
| pusher-js (browser) | 8.6.0 |
| pusher/pusher-php-server | 7.3.0 |
| pusher (Node.js) | 5.3.4 |
| pusher (Python) | 3.3.4 |
| pusher-http-go | v5.1.1 |
| pusher (Ruby) | 2.1.1 |
| laravel/framework (Echo) | ^13.0 |
क्या बदलता है
होस्ट, और क्रेडेंशियल
pusher-js में ws-<क्लस्टर>.pusher.com तब तक तय रहता है जब तक wsHost न दिया जाए, और सर्वर लाइब्रेरियाँ तब तक api-<क्लस्टर>.pusher.com पर जाती हैं जब तक होस्ट न दिया जाए। इन्हीं दोनों को बदल देना ही पूरा माइग्रेशन है।
const pusher = new Pusher(APP_KEY, {- cluster: 'eu',+ wsHost: 'ws-eu1.pushcaster.io',+ wsPort: 443,+ forceTLS: true, })पूरा बदलाव, हर भाषा के लिए
// before — talking to Pushernew Pusher(KEY, { cluster: 'eu' })// after — talking to PushCaster (the key & secret are new)new Pusher(KEY, { wsHost: 'ws-eu1.pushcaster.io', wsPort: 443, forceTLS: true,})होस्ट सेट करना आसानी से छूट जाता है। अगर वह अपने डिफ़ॉल्ट पर रह जाए तो लाइब्रेरी Pusher के सर्वरों से बात करती है, और त्रुटि ग़लत मंज़िल के बजाय ग़लत key बताती है।
app id, key और सीक्रेट नए हैं। मौजूदा क्रेडेंशियल साथ नहीं आते। उसी समय एक क्लस्टर भी चुन लीजिए — वह होस्ट का हिस्सा है।
ज्ञात अंतर
तीन चीज़ें जो एक जैसी नहीं हैं
संगतता का दावा अपने अपवादों के साथ ही काम का होता है। ये तीनों किसी डिज़ाइन-फ़ैसले को बदल सकते हैं।
एक क्लस्टर, कोई फ़ेडरेशन नहीं
क्लस्टर एक आइसोलेशन सीमा है, भौगोलिक संकेत नहीं: उसके अपने नोड, अपना NATS और Redis, और क्लस्टरों के बीच कोई डिलीवरी नहीं। एक ऐप्लिकेशन ठीक एक क्लस्टर में रहता है, इसलिए जिन दो को आपस में बात करनी है वे एक ही क्लस्टर में होने चाहिए।
होस्ट क्लस्टर का नाम नहीं है
अकेला cluster: "eu" PushCaster तक नहीं पहुँचता। क्लाइंट में wsHost और सर्वर लाइब्रेरी में host सेट करना होता है। यह तीन विकल्पों का बदलाव है, और हर माइग्रेशन इसे करता है।
कोई सांख्यिकी API नहीं
Pusher के डैशबोर्ड सांख्यिकी एंडपॉइंट का यहाँ कोई समकक्ष नहीं है। उपयोग हमारे अपने API से आता है और ऑपरेशनल मेट्रिक्स Prometheus से। कोई भी आधिकारिक सर्वर SDK उस एंडपॉइंट को नहीं बुलाता, इसलिए यह आपके टूलिंग को प्रभावित करता है, आपके ऐप्लिकेशन को नहीं।
माइग्रेशन
पहले private और presence चैनल जाँचिए
कुछ ग़लत होने पर भी public चैनल पास होते रहते हैं — वे आपके सर्वर से कुछ पूछते ही नहीं। पुराना होस्ट या बेमेल सीक्रेट सिर्फ़ private और presence सब्सक्रिप्शन पर सामने आता है।
- 01ऐप्लिकेशन बनाइएआप जो क्लस्टर चुनते हैं वह हर उस होस्ट का हिस्सा है जिसे आप अभी कॉन्फ़िगर करने वाले हैं।
- 02दोनों जगह होस्ट सेट कीजिएक्लाइंट को wsHost चाहिए, सर्वर को होस्ट। एक भी छूटा तो आपका आधा ऐप्लिकेशन अब भी Pusher से बात करता रहेगा।
- 03क्रेडेंशियल बदलिएतीनों साथ बदलते हैं। नई key के साथ पुराना सीक्रेट सिर्फ़ हस्ताक्षरित सब्सक्रिप्शन पर विफल होता है — और इसीलिए वह जल्दबाज़ी की जाँच से बच निकलता है।
- 04किसी private चैनल को सब्सक्राइब कीजिएयह POST /pusher/auth को चलाता है और साबित करता है कि secret, app id से मेल खाता है।
- 05किसी presence चैनल में जुड़िएयह सदस्यों की सूची और जुड़ने-छोड़ने के इवेंट की पुष्टि करता है।
- 06सर्वर से पब्लिश कीजिएयह पब्लिश होस्ट और हस्ताक्षर की पुष्टि सिरे से सिरे तक करता है।
एक ऐप्लिकेशन बनाइए और एक क्लाइंट उसकी ओर मोड़िए।
Pusher उसके संबंधित स्वामी का ट्रेडमार्क है। PushCaster एक स्वतंत्र सेवा है, जो न Pusher से संबद्ध है और न उसके द्वारा समर्थित। लाइब्रेरियों के नाम केवल वर्णन के लिए इस्तेमाल हुए हैं।