`
- 浏览:
1065158 次
- 性别:
- 来自:
长沙
-
-
public class IMServer {
-
-
private ConnectionConfiguration connectionConfig;
-
private XMPPConnection connection;
-
private Roster roster;
-
private boolean loginState;
-
private Listener listener;
-
-
-
-
public IMServer(String serviceName) {
-
connectionConfig = new ConnectionConfiguration(serviceName);
-
connection = new XMPPConnection(connectionConfig);
-
listener=new Listener();
-
try {
- connection.connect();
-
} catch (XMPPException e) {
- e.printStackTrace();
- }
- }
-
-
-
-
-
public IMServer(String host, String port) {
-
-
connectionConfig = new ConnectionConfiguration(host, Integer
- .parseInt(port));
-
connection = new XMPPConnection(connectionConfig);
-
listener=new Listener();
-
try {
- connection.connect();
-
} catch (XMPPException e) {
- e.printStackTrace();
- }
- }
-
-
-
-
-
public IMServer(String host, int port, String serviceName) {
-
connectionConfig = new ConnectionConfiguration(host, port, serviceName);
-
connection = new XMPPConnection(connectionConfig);
-
listener=new Listener();
-
-
try {
- connection.connect();
-
-
} catch (XMPPException e) {
- e.printStackTrace();
- }
- }
-
-
-
-
-
-
-
public boolean loginServer(String userName, String userPswd) {
-
try {
- connection.login(userName, userPswd);
-
loginState = true;
- roster = connection.getRoster();
-
- listener.regConnectionListener(connection);
- listener.regPackListener(connection);
- listener.onlineServer(connection);
- listener.regRosterListener(roster);
-
} catch (XMPPException e) {
- e.printStackTrace();
- }
-
return loginState;
- }
-
-
-
-
-
-
-
-
-
public boolean createAccount(String regUserName, String regUserPswd) {
-
try {
- connection.getAccountManager().createAccount(regUserName,
- regUserPswd);
-
return true;
-
} catch (XMPPException e) {
- e.printStackTrace();
-
return false;
- }
-
- }
-
-
-
-
-
-
-
public boolean logoutServer() {
-
if (loginState) {
- connection.disconnect();
- listener.stopOnlineThread();
-
loginState = false;
- }
-
return !loginState;
- }
-
-
-
-
-
-
-
public List<RosterEntry> getOnlineEntries() {
-
List<RosterEntry> EntriesList = new ArrayList<RosterEntry>();
- Collection<RosterEntry> rosterEntry = roster.getEntries();
- Iterator<RosterEntry> i = rosterEntry.iterator();
-
while (i.hasNext()){
-
- EntriesList.add(i.next());
- }
-
return EntriesList;
- }
-
-
-
-
-
-
public List<RosterEntry> getAllEntries() {
-
List<RosterEntry> EntriesList = new ArrayList<RosterEntry>();
- Collection<RosterEntry> rosterEntry = roster.getEntries();
- Iterator<RosterEntry> i = rosterEntry.iterator();
-
while (i.hasNext())
- EntriesList.add(i.next());
-
return EntriesList;
- }
-
-
-
-
-
-
-
public List<RosterEntry> getEntriesByGroup(String groupName) {
-
List<RosterEntry> EntriesList = new ArrayList<RosterEntry>();
- RosterGroup rosterGroup = roster.getGroup(groupName);
- Collection<RosterEntry> rosterEntry = rosterGroup.getEntries();
- Iterator<RosterEntry> i = rosterEntry.iterator();
-
while (i.hasNext())
- EntriesList.add(i.next());
-
return EntriesList;
- }
-
-
-
-
-
-
-
public List<RosterGroup> getGroups() {
-
List<RosterGroup> groupsList = new ArrayList<RosterGroup>();
- Collection<RosterGroup> rosterGroup = roster.getGroups();
- Iterator<RosterGroup> i = rosterGroup.iterator();
-
while (i.hasNext())
- groupsList.add(i.next());
-
return groupsList;
- }
-
-
-
-
-
public XMPPConnection getConnection() {
-
return connection;
- }
-
-
-
-
-
public boolean getLoginState() {
-
return loginState;
- }
-
-
-
-
-
public Roster getRoster() {
-
return roster;
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Smack简化了与XMPP服务器的通信,提供了丰富的API来处理用户认证、会话管理、消息发送和接收、以及用户状态等。 首先,确保已经正确地安装了Smack库。通常,这可以通过在项目的构建路径中添加Smack的JAR文件或者...
搭建openfire后,用 smack api 连接服务的测试demo。运行官网范例,发现其实不易,smack4.1.4中缺少很多依赖于第3方的jar包。不断debug甚是痛苦,终于跑起来了。分享出来给只是想要个初体验的同学。
本文档详细介绍了基于Spark、Smack和Openfire构建IM系统的开发过程和关键知识点,旨在帮助开发者更好地理解和实践。 1. **Spark**: Spark是一款开源的Web即时通讯客户端,支持多种平台,包括Windows、Linux和Mac ...
Asmack是smack的android版,是对xmpp协议进行了封装,并提供了丰富的api,简化了操作。Openfire是一个开源的IM服务器,基于Xmpp实现。换句话说使用xmpp开发即时通讯应用的话,服务器端已经开发好了,就是openfire。
WebSocket、Smack 和 OpenFire 是三个在IT领域中与实时通信相关的关键技术,它们共同构建了高效、实时的网络通信解决方案。 WebSocket 是一种在 Web 应用程序中实现双向通信的协议,它允许客户端和服务器之间建立...
开发者可以通过这个源代码学习如何配置 Openfire 服务器,设置 WebSocket 连接,以及如何在客户端应用中使用 Smack API 进行即时通讯功能的开发。此外,源代码还可能包含了错误处理、安全配置、性能优化等方面的实践...
8. **群聊功能**:Openfire支持多用户聊天(MUC),Smack通过`MultiUserChat`类提供了相关的操作,如创建、加入群聊,发送群聊消息,管理群聊成员等。 9. **扩展功能**:Openfire和Smack都支持自定义XML扩展,这...
Openfire支持多种操作系统,并且具备强大的管理功能,如用户管理、群组管理、安全性设置等。通过Openfire,开发者可以搭建自己的即时通讯服务器,满足企业级或个人的需求。 要使用Smack连接Openfire,首先需要确保...
Openfire、Spark和Smack是三个与XMPP(Extensible Messaging and Presence Protocol)相关的开源项目,它们在构建即时通讯(IM)系统中扮演着重要角色。XMPP是一种基于XML的网络协议,主要用于实时通讯,包括消息...
解压smack_4_3_0.zip后,开发者可以使用其中的API来构建与Openfire或其他XMPP服务器交互的客户端应用。Smack提供了连接管理、会话建立、消息发送与接收、用户状态管理、多用户聊天室等功能。它的API设计直观,使得...
1. 学习Smack的基本API,包括连接服务器、创建实体、发送和接收消息等。 2. 实现Smack的高级功能,如多用户聊天室、离线消息处理、推送通知等。 **四、Spark与Openfire的集成** 1. 配置Spark连接Openfire服务器,...
Smack是一个为使用XMPP服务器聊天和发送即时消息交流而提供的库。 Smack的主要优势: 使用简单且拥有强大的API。向用户发送一条文本消息只需用一下三行...本文档将向你介绍Smack API,并大概介绍几个重要的类和概念。
2. **Openfire服务器配置**:设置服务器、创建用户、管理认证和安全策略,包括SSL/TLS加密。 3. **ASMACK API**:学习如何在Android应用中初始化连接、登录、建立会话、发送和接收消息,以及处理离线消息和推送通知...
5. **其他功能**:除了基本的消息收发,Smack还支持群聊、用户状态管理、Roster(联系人列表)操作等。例如,可以使用`Roster`类来获取、添加、删除联系人,或者使用`MUC`(Multi-User Chat)API来创建和参与群聊。 ...
2. **Smack库**:Smack是Java和Android平台上的一个开源XMPP客户端库。它提供了一套API,使得开发者可以轻松地与XMPP服务器进行交互,包括登录、发送和接收消息、管理联系人列表等。在Android项目中,开发者可以通过...
Smack API与Openfire服务器配合使用,可以实现高效的、安全的P2P或者服务器中继的聊天功能。本文将深入探讨Smack API的基本概念、原理及其在实际应用中的使用方法。 ### 1. Smack API基本概念 Smack API是用Java...
Smack 4.1.4是该库的一个版本,它提供了API,使得开发者可以方便地实现XMPP功能,如创建连接、登录、发送和接收消息、管理联系人等。 在Android应用中集成Smack 4.1.4,你需要: 1. 添加Smack库的依赖到项目构建...
Openfire提供了丰富的API和管理界面,使得开发者可以方便地集成即时通讯功能到自己的应用中。 【三】WebIM与JWChat WebIM是嵌入到网页中的即时通讯客户端,无需安装额外软件即可使用。JWChat是一个基于AJAX技术的...