【发布时间】:2014-12-25 17:06:54
【问题描述】:
我正在使用 spring 集成 xmpp 模块编写连接到 GCM 云服务的第 3 方服务器的自定义实现,如 GCM Cloud Connection Server (XMPP)。
到目前为止,我已经成功连接到 GCM 服务器,但是当我向服务器发送消息时,我最终会得到如下信息:
<message id="m-1366082849205" to="REGISTRATION_ID">
<body>{"hello":"world"}</body>
</message>
,但我需要发送如下内容:
<message id="">
<gcm xmlns="google:mobile:data">
{
"to":"REGISTRATION_ID",
"message_id":"m-1366082849205"
"data":
{
"hello":"world",
}
}
</gcm>
</message>
我用的是最新的SI版本,4.0.4,这是我在xml中的配置:
<int-xmpp:outbound-channel-adapter
id="gcmOutboundAdapter" channel="gcmOutboundNotificationChannel"
xmpp-connection="gcmConnection" auto-startup="true"/>
我正在使用通常的 MessageBuilder 发送消息,如下所示:
Message<String> xmppOutboundMsg = MessageBuilder.withPayload(xmppPayload)
.setHeader(XmppHeaders.TO, REGISTRATION_ID)
.build();
其中 xmppPayload 是一个 json 字符串。
我需要配置/覆盖 xmpp 消息的组成方式,实现结果的最佳实践是什么?我是否应该使用自定义服务激活器覆盖实现 int-xmpp:outbound-channel-adapter 的类,是否可以配置 xmpp 消息的组成方式?
感谢您的帮助。
【问题讨论】:
-
你能看看my question 可能有帮助吗?
标签: xmpp spring-integration google-cloud-messaging