我是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;
}
答案 0 :(得分:1)
当然,最好在这个问题上使用特定的Spring Integration Adapter。它是ChatMessageSendingMessageHandler
。
我们现在正处于Extensions
对该适配器的支持的合并阶段:https://github.com/spring-projects/spring-integration/pull/1745。因此,在下一个Spring Integration 4.3版本中,您将获得更多GCM支持。
现在作为一种解决方法,您必须手动创建一个带有GCM扩展名的XMPP邮件,并将其发送到该ChatMessageSendingMessageHandler
的频道。