Openfire:通过Servlet群发消息

在Openfire中自带有Broadcase插件,可以让我们群发消息给全部用户或者组。不过如果是我们通过Servlet来实现这一功能,那么是能够增加一定的灵活性的。具体做法直接看Demo代码:

public class SafeServlet extends HttpServlet {

    private JID serverAddress;
    private MessageRouter router;
    private UserManager userManager;

    @Override
    public void init() throws ServletException {
        super.init();
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        super.doGet(request, response);

        // 获取服务器地址
        serverAddress = new JID(XMPPServer.getInstance().getServerInfo().getXMPPDomain());
        router = XMPPServer.getInstance().getMessageRouter();
        userManager = UserManager.getInstance();

        System.out.println("Require SafeServlet GET Method");

        // 创建消息类
        final Message message = new Message();
        message.setFrom(serverAddress);
        message.setSubject("Test subject");
        message.setBody("Test body");
        message.setType(Message.Type.chat);

        // 获取所有用户
        Collection<User> users = userManager.getUsers();
        String xmppdomain = "@" + JiveGlobals.getProperty("xmpp.domain");
        // 对所有用户进行遍历,发送消息
        for (User u : users)
        {
            // 创建需要发送消息的备份,只将发送对象进行修改
            final Message newMessage = message.createCopy();
            newMessage.setTo(u.getUsername() + xmppdomain);
            try {
                TimerTask messageTask = new TimerTask() {
                    @Override
                    public void run() {
                        router.route(newMessage);
                    }
                };

                TaskEngine.getInstance().schedule(messageTask, 5000);
            } catch (Exception e) {
                Log.error(e.getMessage(), e);
            }
        }
    }

    @Override
    public void destroy() {
        super.destroy();

        serverAddress = null;
        router = null;
        userManager = null;
    }
}

Servlet的配置可以参考此文:http://www.cnblogs.com/ilovewindy/p/3834003.html

Openfire:通过Servlet群发消息,布布扣,bubuko.com

时间: 2024-11-05 09:14:42

Openfire:通过Servlet群发消息的相关文章

微信公众平台群发消息的方法及注意事项

群发消息的方法 操作方法:登录微信公众平台(https://mp.weixin.qq.com)=>群发消息=>根据需要填写文字/语音/图片/视频/录音等内容后,选择对群发对象.性别.群发地区发送即可. 群发消息内容 目前支持群发的内容:文字.语音.图片.视频.图文消息. 1.群发内容中需添加文字+图片+视频,可先在“素材管理”中设置图文消息,然后群发时选择“图文消息”类型即可. 2.上传至素材管理中的图片.语音可多次群发,没有有效期. 3.群发图文消息的标题上限为64个字节: 4.群发内容字数

【微信公众号开发】根据openId群发消息

根据开发文档可知,只要使用POST方式提交固定格式的json字符串到那个地址即可.这里我写的是最简单的文本 第一步:建立对应的实体类. 1 package cn.sp.bean; 2 3 import java.util.List; 4 import java.util.Map; 5 6 /**群发消息 7 * Created by 2YSP on 2017/7/12. 8 */ 9 public class MassMessage { 10 private List<String> tous

微信公众号教程(3)微信公众平台群发消息

微信公众平台最常用到的就是群发消息,这种一对多.几乎百分百到达的传播方式,取代了短信群发,并且具有多媒体形态,还可以直接引导转化.因此编辑一条好的内容,挑选恰当的时候发送,既可以给用户带来有价值的信息,又有机会给公众账号带来新的关注和收益.本期将重点为大家讲解素材管理该怎么玩,群发消息需要注意些什么. 第三章 微信公众平台群发消息 一.微信公众平台后台素材管理   点击公众平台后台导航的"素材管理",或者在群发消息或者与用户聊天页面时,选择发送多媒体内容时快捷进入.这个页面主要是用来管

群发消息

群发消息 一.前言 ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信.什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知消息及调用方法,当然这是实时操作的. WebSockets是HTML5提供的新的API,可以在Web网页与服务器端间建立Socket连接,当WebSockets可用时(即浏览器支持Html5)SignalR使用WebSockets,当不支持时SignalR将使用其它技术来保证达到相同效

夺命雷公狗---微信开发31----微信群发消息4

index.php代码如下: <?php /** * wechat php test */ //define your token require_once "common.php"; //这里是引入curl发送函数的类 require_once 'WeChat.class.php'; define("TOKEN", "twgdh"); //这里让这个类继承了curl发送参数的类 class wechatCallbackapiTest ex

微信公众平台测试群发消息公开阅读次数和点赞数

微信公众平台这几天在小范围测试公开阅读次数.点赞数,只有一个微信公众号才会显示,有三个地方新改变:文章标题下的作者信息前加了一个"by",换行显示日期.每篇文章的阅读次数和公众账号信息,同时,在文章末尾可对文章进行点赞,还有具体的点赞次数.如下图所示 在同一天,腾讯宣布旗下微博"不再做更新,只维持其基本运转",腾讯微博只维持基本运营,不再做新产品开发.这是微信正在微博化的节奏吗?还微信入侵腾讯微博?谁知道呢?!有微信和手Q就够了,甚至说有微信就可以了. 微信公众平台

微信公众号开发之群发消息(三)

public function massSend(){ // $postField='{ // "filter":{ // "group_id":"0" //}, // "text":{ // "content":"您有一个新咨询,请您及时处理" // }, // "msgtype":"text"//}'; $postField='{ "

根据OpenID列表群发 高级群发消息

package com.wanhua.weixin.model; import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import org.junit.Test; import play.cac

.net微信公众号开发——群发消息

作者:王先荣    本文将介绍微信公众号开发中用于群发消息的类MassMessage,包括:(1)MassMessage类:(2)群发:(3)删除:(4)预览:(5)查询发送状态:(6)接收推送群发结果事件.    源代码地址:http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount/tree/master/PublicAccount/MassMessage    演示地址:http://www.xrwang.net/Example/M