问答详情
源自:2-6 验证

我的别名推送问题

为什么 我这里 别名推送会发送两次?

提问者:香沙小熊 2017-03-17 16:58

个回答

  • 香沙小熊
    2017-03-21 09:36:27

        public void sendBroadcast(String apiKey, String title, String message,

                String uri) {

            log.debug("sendBroadcast()...");

            List<User> users = userService.getUsers(); //把表中数据全部拿出来

            for (User user : users) {

            Random random = new Random();

            String id = Integer.toHexString(random.nextInt());

        //在这里,不关心 服务器端有没有推,后续由客户端进行反馈

    saveNotification(apiKey, user.getUsername(), title, message, uri, id); //前置

            IQ notificationIQ = createNotificationIQ(id,apiKey, title, message, uri);

    ClientSession session = sessionManager.getSession(user.getUsername());

    if(session != null&&session.getPresence().isAvailable()){

    notificationIQ.setTo(session.getAddress());

                    session.deliver(notificationIQ);

    }

            }

    这么改就解决