在完成openfire服务端的配置后
下载Spark就可以通讯,这样也方便测试
我们就可以使用Smack进行开发测试了。
其中android 客服端通讯示例http://www.apkbus.com/android-69413-1-1.html
就可以开始开发了。
其中smack核心包 类 如下
实现连接,重连,通讯,注册登录,状态修改,增删改查联系人,一对一聊天,上传附件,聊天室,聊天室管理,
数据包侦听.......等一系列功能
See:
Description
Interface Summary | |
---|---|
ChatManagerListener | 聊天相关的事件侦听器 |
ConnectionCreationListener | 一个新的连接创建,这个接口的实现者将会收到通知 |
ConnectionListener | 允许的接口实现类监听连接关闭和重联事件 |
MessageListener | |
PacketInterceptor | 提供了一种机制来拦截和修改将被发送到服务器的数据包 |
PacketListener | 提供了一种通过指定的包过滤的机制 |
PrivacyListListener | 实现类监听服务器保密通信的接口 |
RosterListener | 名单变更或已存在的用户在列表中状态改变。 |
Class Summary | |
---|---|
AbstractConnectionListener | 该abstractconnectionlistener类提供的接口定义的所有方法connectionlistener空的实现 |
AccountManager | 允许在XMPP服务器帐户的创建和管理 |
Chat | 两个用户之间聊天发送的一系列消息。 |
ChatManager | 管理目前所有的聊天记录. |
Connection | 连接类提供了一个XMPP服务器连接的接口和实现共享的方法 |
Connection.InterceptorWrapper | 过滤器拦截关联的数据包 |
Connection.ListenerWrapper | |
ConnectionConfiguration | 建立服务器连接的配置 |
PacketCollector | 收集结果的队列,通过指定的过滤包提供了一种机制 |
PrivacyList | 一个隐私列表,表示这是一个只读类用来表示一组允许或阻止通信的联系人列表 |
PrivacyListManager | privacylistmanager在XMPP客户端用来阻止或允许其他用户的通信。 |
ReconnectionManager | 处理自动重联过程 |
Roster | 代表一个用户的名单,收集更新用户存在名单 |
RosterEntry | 每个用户在你的名单中的条目,其中包含了用户的JID和您指定的姓名或昵称. |
RosterGroup | 一组名单条目 |
SASLAuthentication | 这类负责使用SASL认证用户,连接的资源和建立与该服务器的会话 |
SmackConfiguration | 表示配置 |
XMPPConnection | 创建一个套接字连接到XMPP服务器. |
Enum Summary | |
---|---|
ConnectionConfiguration.SecurityMode | XMPP服务器进行连接时,可用TLS的枚举的安全模式 |
Roster.SubscriptionMode | 枚举订阅模式选项 |
SmackError |
Exception Summary | |
---|---|
XMPPException | 一个通用的错误时引发的异常发生时,执行一个XMPP操作 |
目录(?)[+]
|
Smack | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jivesoftware.smackx.muc.MultiUserChat
public class MultiUserChat
MultiUserChat是发生在许多用户在一个虚拟房间一段对话。一个房间可以有许多不同的隶属关系和角色。角色可能是“主人”,“管理员”,“成员”,“outcase”。可能的角色是“主持人”,“参与者”和“访客”。保证每个角色和隶属关系不同的权限(例如,将消息发送到所有用户,踢参与者和参观者,Grant voice,编辑成员列表等)
Constructor Summary | |
---|---|
MultiUserChat(Connection connection, java.lang.String room) Creates a new multi user chat with the specified connection and room name. |
Method Summary | |
---|---|
static void |
addInvitationListener(Connection conn, InvitationListener listener) 添加一个邀请通知的监听器 |
void |
addInvitationRejectionListener(InvitationRejectionListener listener) 添加一个拒绝邀请通知监听器。 |
void |
addMessageListener(PacketListener listener) 添加任何新的消息在群聊,将收到一个数据包监听 |
void |
addParticipantListener(PacketListener listener) 添加一个数据包侦听器将收到的任何新出现的数据包发送到群组聊天。 |
void |
addParticipantStatusListener(ParticipantStatusListener listener) 添加一个监听器 监听将剔除用户,禁止占用状态的改变,或授予管理权限。 |
void |
addPresenceInterceptor(PacketInterceptor presenceInterceptor) Adds a new PacketInterceptor that will be invoked every time a new presence is going to be sent by this MultiUserChat to the server. |
void |
addSubjectUpdatedListener(SubjectUpdatedListener listener) 添加一个监听如有变更通知 |
void |
addUserStatusListener(UserStatusListener listener) 添加一个侦听器将通知您的状态变化,如被用户踢出房间,禁止,或授予管理权限. |
void |
banUser(java.lang.String jid, java.lang.String reason) 从该聊天室剔除用户 |
void |
banUsers(java.util.Collection<java.lang.String> jids) 从该聊天室剔除用户群 |
void |
changeAvailabilityStatus(java.lang.String status, Presence.Mode mode) 改变聊天室成员的状态 |
void |
changeNickname(java.lang.String nickname) 更改聊天室成员的昵称 |
void |
changeSubject(java.lang.String subject) 更改聊天室的主题 |
void |
create(java.lang.String nickname) 根据一些默认配置,创建聊天室,聊天室的主人发出请求分配增加所有者的房间,但不允许任何人进入房间(有效地“锁定”的房间)。 |
Message |
createMessage() 创建一个新的消息发送到聊天室 |
Chat |
createPrivateChat(java.lang.String occupant, MessageListener listener) 返回一个新的聊天,发送私人信息到一个给定的室内成员 |
static void |
decline(Connection conn, java.lang.String room, java.lang.String inviter, java.lang.String reason) 通知发件人的邀请,受邀者拒绝邀请 |
void |
destroy(java.lang.String reason, java.lang.String alternateJID) 向服务器发送请求来销毁聊天室 |
protected void |
finalize() |
java.util.Collection<Affiliate> |
getAdmins() 返回房间管理员集合 |
Form |
getConfigurationForm() 返回房间的结构形式 |
static java.util.Collection<HostedRoom> |
getHostedRooms(Connection connection, java.lang.String serviceName) 返回一个集合,其中每个有XMPP地址的房间的和房间的名字。 |
static java.util.Iterator<java.lang.String> |
getJoinedRooms(Connection connection, java.lang.String user) 返回一个Iterator,要求用户已加入所在的房间 |
java.util.Collection<Affiliate> |
getMembers() 返回一个成员集合 |
java.util.Collection<Occupant> |
getModerators() 返回聊天室主持人集合 |
java.lang.String |
getNickname() 返回用于加入房间的昵称,如果目前没有加入返回null |
Occupant |
getOccupant(java.lang.String user) 返回特定的成员信息,如果用户不在房间里返回null. |
Presence |
getOccupantPresence(java.lang.String user) 返回特定用户的存在信息,如果用户不在房间里null |
java.util.Iterator<java.lang.String> |
getOccupants() 返回在群聊的成员名单(字符串)一个迭代器 |
int |
getOccupantsCount() 返回在群聊成员的数量。 |
java.util.Collection<Affiliate> |
getOutcasts() 返回一个被剔除用户的集合 |
java.util.Collection<Affiliate> |
getOwners() 返回房主的集合。 |
java.util.Collection<Occupant> |
getParticipants() 返回一个房间的参与者集合。 |
Form |
getRegistrationForm() 返回房间的登记表,一个不相关的用户如果没有登记使用,可能成为房间空的一员 |
java.lang.String |
getReservedNickname() 返回预订的房间里用户的昵称 |
java.lang.String |
getRoom() 返回房间此MultiUserChat对象代表的名字 |
static RoomInfo |
getRoomInfo(Connection connection, java.lang.String room) 返回一个给定的房间基础的信息,而不必实际加入房间. |
static java.util.Collection<java.lang.String> |
getServiceNames(Connection connection) 返回一个多用户聊天服务XMPP地址的集合 |
java.lang.String |
getSubject() 返回的最后一个已知房间的主题或空,如果用户还没有加入房间或房间不会有一个主题。 |
void |
grantAdmin(java.util.Collection<java.lang.String> jids) 赋予管理员权限的其他用户 |
void |
grantAdmin(java.lang.String jid) 赋予管理员权限的其他用户。 |
void |
grantMembership(java.util.Collection<java.lang.String> jids) 授予其他用户会员权限。 |
void |
grantMembership(java.lang.String jid) 授予其他用户会员权限。 |
void |
grantModerator(java.util.Collection<java.lang.String> nicknames) 授予参与者或访客管理权限。 |
void |
grantModerator(java.lang.String nickname) 授予参与者或访客管理权限。 |
void |
grantOwnership(java.util.Collection<java.lang.String> jids) 将授予其他用户所有权权限。 |
void |
grantOwnership(java.lang.String jid) 将授予其他用户所有权权限 |
void |
grantVoice(java.util.Collection<java.lang.String> nicknames) 授予的房间里的游客麦克风权限。 |
void |
grantVoice(java.lang.String nickname) 授予的房间里的游客麦克风权限。 |
void |
invite(Message message, java.lang.String user, java.lang.String reason) Invites another user to the room in which one is an occupant using a given Message. |
void |
invite(java.lang.String user, java.lang.String reason) Invites another user to the room in which one is an occupant. |
boolean |
isJoined() 如果目前在多用户聊天返回true,(after calling the join(String) method). |
static boolean |
isServiceEnabled(Connection connection, java.lang.String user) 如果指定的用户支持多用户聊天协议返回true。 |
void |
join(java.lang.String nickname) 使用指定的别名加入聊天室。 |
void |
join(java.lang.String nickname, java.lang.String password) 使用指定的昵称和密码 加入聊天室 |
void |
join(java.lang.String nickname, java.lang.String password, DiscussionHistory history, long timeout) 使用指定的昵称和密码 加入聊天室 |
void |
kickParticipant(java.lang.String nickname, java.lang.String reason) 从房间踢除一个访客或参与者。 |
void |
leave() 离开聊天室 |
Message |
nextMessage() 返回下一个可用的聊天消息。 |
Message |
nextMessage(long timeout) 返回下一个可用的聊天消息。 |
Message |
pollMessage() 民意调查,并返回下一个消息,如果没有下一个可用的消息返回null |
static void |
removeInvitationListener(Connection conn, InvitationListener listener) 移除邀请通知监听器 |
void |
removeInvitationRejectionListener(InvitationRejectionListener listener) 移除一个拒绝邀请通知的监听器。 |
void |
removeMessageListener(PacketListener listener) 删除一个通知多用户聊天的任何新的消息数据包侦听器。 |
void |
removeParticipantListener(PacketListener listener) Remoces a packet listener that was being notified of any new Presence packets sent to the group chat. |
void |
removeParticipantStatusListener(ParticipantStatusListener listener) Removes a listener that was being notified of changes in occupants status in the room such as the user being kicked, banned, or granted admin permissions. |
void |
removePresenceInterceptor(PacketInterceptor presenceInterceptor) Removes a PacketInterceptor that was being invoked every time a new presence was being sent by this MultiUserChat to the server. |
void |
removeSubjectUpdatedListener(SubjectUpdatedListener listener) 移除一个 变更通知 监听器。 |
void |
removeUserStatusListener(UserStatusListener listener) 移除一个 户被踢出房间,禁止,或授予管理权限 监听器 |
void |
revokeAdmin(java.util.Collection<java.lang.String> jids) 撤销用户的管理员权限。 |
void |
revokeAdmin(java.lang.String jid) 撤销用户的管理员权限。 |
void |
revokeMembership(java.util.Collection<java.lang.String> jids) 撤销用户的会员权限。 |
void |
revokeMembership(java.lang.String jid) 撤销用户的会员权限。 |
void |
revokeModerator(java.util.Collection<java.lang.String> nicknames) 撤销其他用户管理权限 |
void |
revokeModerator(java.lang.String nickname) 撤销另一个用户版主的特权。 |
void |
revokeOwnership(java.util.Collection<java.lang.String> jids) 撤销其他用户的所有权。 |
void |
revokeOwnership(java.lang.String jid) 撤销其他用户的所有权. |
void |
revokeVoice(java.util.Collection<java.lang.String> nicknames) 撤销房间中参与者的声音 |
void |
revokeVoice(java.lang.String nickname) 撤销房间中参与者的声音 |
void |
sendConfigurationForm(Form form) 发送配置到服务器。 |
void |
sendMessage(Message message) 将消息发送到聊天室。 |
void |
sendMessage(java.lang.String text) 将消息发送到聊天室。 |
void |
sendRegistrationForm(Form form) 将填妥的报名表格到服务器。 |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |