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群发消息的更多相关文章
- C#实现微信公众号群发消息(解决一天只能发一次的限制)
经过几天研究网上的代码和谢灿大神的帮忙,今天终于用C#实现了微信公众号群发消息,现在整理一下. 总体思路:1.首先必须要在微信公众平台上申请一个公众号. 2.然后进行模拟登陆.(由于我对http传输原 ...
- .net微信公众号开发——群发消息
作者:王先荣 本文将介绍微信公众号开发中用于群发消息的类MassMessage,包括:(1)MassMessage类:(2)群发:(3)删除:(4)预览:(5)查询发送状态:(6)接收推送群发结 ...
- signalr中Group 分组群发消息的简单使用
前一段时间写了几篇关于signalr的文章 1.MVC中使用signalR入门教程 2.mvc中signalr实现一对一的聊天 3.Xamarin android中使用signalr实现即时通讯 在平 ...
- node实现微信扫码群发消息《附上github代码》
本篇文章就是为大家介绍一下我是如何用node去实现扫码群发功能,源代码地址在最后面 获取登录二维码 -> 扫码登录服务端 首先介绍一下主要流程,并附上关键代码 1.获取UUI ...
- Python自制微信机器人:群发消息、自动接收好友
运营公众号也有半年了,今年5月份开始的,之前一直用一款windows工具来运营自动接受好友请求.群发文章.自动回复等操作,但颇有不便. 举几个场景: 突然在外面看到一篇文章很好,临时写了一篇,想群发一 ...
- php 实现微信模拟登陆、获取用户列表及群发消息功能示例
本文实例讲述了php实现微信模拟登陆.获取用户列表及群发消息功能.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
- 【微信公众号开发】根据openId群发消息
根据开发文档可知,只要使用POST方式提交固定格式的json字符串到那个地址即可.这里我写的是最简单的文本 第一步:建立对应的实体类. package cn.sp.bean; import java. ...
- springboot2.0+websocket集成【群发消息+单对单】(二)
https://blog.csdn.net/qq_21019419/article/details/82804921 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上 ...
- Go语言网络通信---tcp群发消息
server package main import ( "fmt" "net" "os" "time" ) func ...
随机推荐
- WCF 通讯标准绑定
WCF 通讯标准绑定 一.预定义标准绑定 标准绑定 说明 BasicHttpBinding BasicHttpBinding 绑定用于最广泛的互交操作,针对第一代Web服务,所使用的传输协议是HTTP ...
- sql数据库中常用连接
很简单的知识点,今天有点搞不清楚左外连接,右外连接:详见以下: --表stu id name 1, Jack 2, Tom 3, Kity 4, nono --表exam id grade 1, 56 ...
- SublimeText学习(二)-基本操作
1.查看已安装的插件 看到已经安装的插件,看到了在上一篇中安装的Emmet 2.设置主题与字体 方法一: 方法二: 工具栏中 [Preference-浏览程序包]找到[Default文件夹]-用Sub ...
- [hihocoder][Offer收割]编程练习赛62
方向 #pragma comment(linker, "/STACK:102400000,102400000") #ifndef ONLINE_JUDGE #include &qu ...
- 用CSS样式写选择框右侧小三角
直接上代码! <!DOCTYPE html><html lang="en"><head> <title>小三角</title& ...
- CSS实现两栏布局
写在前面 两栏布局是指页面布局由主栏和边栏组成,是许多网页的布局方式,一般使用CSS去实现两栏布局. 实现两栏布局的方式有多种,这里采用四种比较常见的实现方式.主要是流体布局(liquid layou ...
- Leetcode0006--ZigZag Conversion
[转载请注明]https://www.cnblogs.com/igoslly/p/9017638.html 来看一下题目: The string "PAYPALISHIRING" ...
- html5——动画案例(太阳系)
太阳系主要利用定位,伪元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- SQL基本操作——约束
我们将主要探讨以下几种约束: 1.NOT NULL 2.UNIQUE 3.PRIMARY KEY 4.FOREIGN KEY 5.CHECK 6.DEFAULT SQL NOTNULL约束:NOT N ...
- R语言数据重塑
使用cbind()函数连接多个向量来创建数据帧.此外,使用rbind()函数合并两个数据帧 使用merge()函数合并两个数据帧.数据帧必须具有相同的列名称,在其上进行合并 melt()拆分数 ...