/ / Herode के माध्यम से Node.js XMPP क्लाइंट कार्यान्वयन कनेक्ट नहीं होता है - node.js, heroku, xmpp, Google-क्लाउड-मैसेजिंग, नोड-xmpp

नोडोकू के माध्यम से Node.js XMPP क्लाइंट कार्यान्वयन कनेक्ट नहीं होता है - node.js, heroku, xmpp, google-cloud-messaging, node-xmpp

मैंने Android मोबाइल से सूचनाएं भेजने और प्राप्त करने के लिए Node.js (नोड-xmpp मॉड्यूल का उपयोग करके) के भीतर एक XMPP क्लाइंट लागू किया है:

var xmpp = require("node-xmpp");

var options =
{
type: "client",
jid: process.env.GCM_PROJECT_ID+"@gcm.googleapis.com",
password: process.env.GCM_PASSWORD,
port: 5235,
host: "gcm.googleapis.com",
legacySSL: true,
preferred : "PLAIN"
};
var cl = new xmpp.Client(options);

cl.connection.socket.setKeepAlive(true, 10000);

और यह वह जगह है जहाँ "ऑनलाइन" ईवेंट को नियंत्रित किया जाता है:

cl.on("online", function() {
console.log("online");
});

जब नोड।js सर्वर स्थानीय रूप से सब कुछ ठीक काम करने लगा है और मैं एंड्रॉइड ग्राहकों से अपस्ट्रीम संदेश प्राप्त करने के साथ-साथ एंड्रॉइड क्लाइंट को डाउनस्ट्रीम संदेश भेजने में सक्षम हूं। जब मेरा वेबसर्वर एक हेरोकू वंश पर चलता है, हालांकि, "ऑनलाइन" ईवेंट को कभी ट्रिगर नहीं किया जाता है, इस प्रकार एक्सएमपीपी क्लाइंट कनेक्ट नहीं होता है और मैं अपस्ट्रीम संदेश प्राप्त नहीं कर सकता हूं और न ही डाउनस्ट्रीम संदेश भेज सकता हूं।

मेरा कार्यान्वयन निम्नलिखित सार पर आधारित था: https://gist.github.com/jamesvnz/6756208 जहां यह लेखक एक XMPP सर्वर को लागू करने के लिए नमूना नोड .js सर्वर कोड प्रदान करता है, जो कि एंड्रॉइड के Google क्लाउड मैसेजिंग (GCM) "डिवाइस टू क्लाउड" संदेश कार्यक्षमता - CCS के साथ एकीकृत होगा।

इसलिए, मैं समझ सकता हूं कि हरमोकू पर चलने पर एक्सएमपीपी क्लाइंट क्यों नहीं जुड़ता है, लेकिन स्थानीयहोस्ट पर पूरी तरह से काम करता है।

उत्तर:

उत्तर № 1 के लिए 1

Xmpp doesn "हरोकू पर काम नहीं करता है :(। मुझे यकीन नहीं है क्यों, लेकिन यह उनकी वेबसाइट पर बहुत स्पष्ट रूप से कहता है