如何使用Spring Integration发送gcm xmpp消息?

时间:2016-04-01 16:44:26

标签: java spring google-cloud-messaging xmpp spring-integration

我是Spring Integration和Google Cloud Message的新手。 NSMutableArray已成功创建,我可以在我的服务类中自动加载XmppConnectionFactoryBean

XmppConnection

服务类:

@Configuration
class XmppConfig {

    @Value("${gcm.sender_id}")
    private String senderId;

    @Value("${gcm.api_key}")
    private String apiKey;

    @Value("${gcm.host}")
    private String host;

    @Value("${gcm.port}")
    private int port;

    @Bean
    public ConnectionConfiguration connectionConfiguration() {
        ConnectionConfiguration connectionConfig = new ConnectionConfiguration(host, port);
        connectionConfig.setSecurityMode(SecurityMode.enabled);
        connectionConfig.setReconnectionAllowed(true);
        connectionConfig.setRosterLoadedAtLogin(false);
        connectionConfig.setSendPresence(false);
        connectionConfig.setSocketFactory(SSLSocketFactory.getDefault());

        return connectionConfig;
    }

    @Bean
    public XmppConnectionFactoryBean xmppConnectionFactoryBean() {
        XmppConnectionFactoryBean connectionFactoryBean = new XmppConnectionFactoryBean();
        connectionFactoryBean.setUser(senderId);
        connectionFactoryBean.setPassword(apiKey);
        connectionFactoryBean.setConnectionConfiguration(connectionConfiguration());
        return connectionFactoryBean;
    }

}

这是正确的方法吗?如何向GCM发送XMPP消息?我应该直接使用XmppConnection还是一些Spring消息抽象?

更新

创建了MessageHandler并定义了bean名称。

class MyServiceImpl implements MyService {

    @Autowired
    private XmppConnection xmppConnection;

}

1 个答案:

答案 0 :(得分:1)

当然,最好在这个问题上使用特定的Spring Integration Adapter。它是ChatMessageSendingMessageHandler

我们现在正处于Extensions对该适配器的支持的合并阶段:https://github.com/spring-projects/spring-integration/pull/1745。因此,在下一个Spring Integration 4.3版本中,您将获得更多GCM支持。

现在作为一种解决方法,您必须手动创建一个带有GCM扩展名的XMPP邮件,并将其发送到该ChatMessageSendingMessageHandler的频道。