使用 node-xmpp 在节点中写入 Google CCS 服务器时出错
Posted
技术标签:
【中文标题】使用 node-xmpp 在节点中写入 Google CCS 服务器时出错【英文标题】:Error while writing a Google CCS server in node using node-xmpp 【发布时间】:2013-06-19 03:43:21 【问题描述】:这是编写 CCS 服务器的 Google 文档中的 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,但我无法绑定他们在 Python 中管理的模板。有什么帮助吗?
【问题讨论】:
【参考方案1】:重要的部分是以所需的格式发送消息:
<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。
【讨论】:
我唯一的问题是,在 Node 示例中,我不确定应该将这些数据发送到哪里。在 c() 或 t() 函数调用中? @Hick 从节点发送 ccs 消息成功了吗?以上是关于使用 node-xmpp 在节点中写入 Google CCS 服务器时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 simple-xmpp/node-xmpp 获得 Jabber 用户的名册?
如果用户长时间没有写入,如何使用 Firebase Cloud Functions 在 Firebase 数据库中设置节点的值?