smack

smack

pom

<dependencies>
        <dependency>
            <groupId>org.igniterealtime.smack</groupId>
            <artifactId>smack-java7</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.igniterealtime.smack</groupId>
            <artifactId>smack-tcp</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.igniterealtime.smack</groupId>
            <artifactId>smack-im</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.igniterealtime.smack</groupId>
            <artifactId>smack-extensions</artifactId>
            <version>4.2.0</version>
        </dependency>

    </dependencies>

SmackService

public class SmackService implements Serializable {
    private static final long serialVersionUID = -7478680877851293614L;
    private SmackConfig smackConfig;

    public SmackService(SmackConfig smackConfig) {
        this.smackConfig = smackConfig;
    }

    private AbstractXMPPConnection createConnect(CharSequence username, String password, String xmppServiceDomain) throws UnknownHostException, XmppStringprepException {
        InetAddress inetAddress = InetAddress.getByName(this.smackConfig.getServerIp());
        XMPPTCPConnectionConfiguration config = ((Builder)((Builder)((Builder)((Builder)((Builder)((Builder)((Builder)((Builder)XMPPTCPConnectionConfiguration.builder().setXmppDomain(xmppServiceDomain)).setUsernameAndPassword(username, password)).setSecurityMode(SecurityMode.disabled)).setHostAddress(inetAddress)).setPort(this.smackConfig.getMsgPort())).setDebuggerEnabled(true)).setSendPresence(true)).setDebuggerEnabled(true)).setCompressionEnabled(true).build();
        return new XMPPTCPConnection(config);
    }

    public void broadcastMsgToJids(CharSequence username, String password, String xmppServiceDomain, List<Jid> jidList, String subject, String body) throws XMPPException, InterruptedException, IOException, SmackException {
        AbstractXMPPConnection connection = this.createConnect(username, password, xmppServiceDomain);
        connection.connect();
        connection.login();
        Message message = new Message();
        Iterator var9 = jidList.iterator();

        while(var9.hasNext()) {
            Jid jid = (Jid)var9.next();
            message.setTo(jid);
            message.setBody(body);
            message.setSubject(subject);
            connection.sendStanza(message);
        }

        connection.disconnect();
    }

    public void broadcastMsgToAll(CharSequence username, String password, String xmppServiceDomain, String subject, String body) throws XMPPException, IOException, InterruptedException, SmackException {
        AbstractXMPPConnection connection = this.createConnect(username, password, xmppServiceDomain);
        connection.connect();
        connection.login();
        Message message = new Message();
        message.setTo(JidCreate.from("all@broadcast." + this.smackConfig.getServerIp()));
        message.setBody(body);
        message.setSubject(subject);
        connection.sendStanza(message);
        connection.disconnect();
    }
}

配置

@Component
@Data
public class MessageCenterParam {
    @Value("${smack.serverIp}")
    private String serverIp;
    @Value("${smack.domain}")
    private String domain;
    @Value("${smack.msgPort}")
    private int msgPort;
    @Value("${smack.adminAccount}")
    private String adminAccount;
    @Value("${smack.adminPwd}")
    private String adminPwd;

    public MessageCenterParam() {
    }

}


@Configuration
public class MessageCenterConfig {
    @Autowired
    MessageCenterParam messageCenterParam;

    public MessageCenterConfig() {
    }

    @Bean
    public SmackService smackService() {
        SmackConfig smackConfig = new SmackConfig();
        smackConfig.setDomain(this.messageCenterParam.getDomain());
        smackConfig.setMsgPort(this.messageCenterParam.getMsgPort());
        smackConfig.setServerIp(this.messageCenterParam.getServerIp());
        return new SmackService(smackConfig);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值