javascript - 使用 node-xmpp 在 Node 中写入 Google CCS 服务器时出错

标签 javascript python node.js xmpp google-cloud-messaging

这是 Google 文档中编写 CCS 服务器的 Python 代码:

https://developer.android.com/google/gcm/gs.html#server

我弄清楚了其中的大部分内容,以及如何使用 https://github.com/astro/node-xmpp 在 Javascript 中对其进行编码

但是我无法理解如何使用模板发送数据,正是这部分代码:

def send(json_dict):
  template = ("<message><gcm xmlns='google:mobile:data'>{1}</gcm></message>")
  client.send(xmpp.protocol.Message(
      node=template.format(client.Bind.bound[0], json.dumps(json_dict))))

在node-xmpp中,发送是这样完成的:

var cl = new xmpp.Client({ jid: username,
                           password: password });
cl.addListener('online',
               function() {
                   argv.slice(5).forEach(
                       function(to) {
                           cl.send(new xmpp.Element('message',
                                                    { to: to,
                                                      type: 'chat'}).
                                   c('body').
                                   t(argv[4]));
                       });

我理解正在发送的 JSON,但我无法绑定(bind)他们在 Python 中管理的模板。有什么帮助吗?

最佳答案

重要的部分是以所需的格式发送消息:

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "to":"REGISTRATION_ID",  // "to" replaces "registration_ids"
      "message_id":"m-1366082849205" // new required field
      "data":
      {
          "hello":"world",
      }
      "time_to_live":"600",
      "delay_while_idle": true/false
  }
  </gcm>
</message>

是否使用模板并不重要。我不知道 python 也不了解 javascript,但 python 示例中模板的目的似乎只是为了避免编写包装 JSON 的 xml 标签每次您发送消息时。您可以在发送消息时将它们附加到 JSON。

关于javascript - 使用 node-xmpp 在 Node 中写入 Google CCS 服务器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17182523/

相关文章:

javascript - 从 attr() 获取值后对象没有方法 'spilt'

python - Python中的高斯消除有标准解决方案吗?

python - 如何迭代 Pandas 数据框的列以运行回归

node.js - 保持 Node 在后台运行的最佳方法是什么——nohup vs. forever vs. pm2?

javascript - 如何为对象的所有实例调用方法

javascript - 如何从 FTP 地址获取基本 url?

javascript - 使用 ng-repeat 时如何获取复选框的值?

python - 在python中以特定格式获取日期

javascript - 如何在 SailsJS 中创建与另一个模型的对象单向关联的对象列表?

node.js - cpanel node.js 无法获取应用程序的锁 : app