导航:首页 > 操作系统 > androidasmack聊天

androidasmack聊天

发布时间:2022-05-16 05:00:39

A. android端怎么接收openfire服务器发送过来的消息

B. Android如何开发即时通讯功能

sdk最简单,自己搞可以根据XMPP协议,就是其他答案提到的openfire+asmack,但XMPP协议是基于xml的,冗长直接导致费流量费电,可以考虑在传输的时候自己加一层二进制协议

C. 如何android studio 导入asmack源码

在asmack中有两个非常重要的对象PacketReader和PacketWriter,那么从类名上看Packet + (Reader/Wirter),而TCP/IP传输的数据,叫做Packet(包),asmack使用的是XMPP协议,XMPP简单讲就是使用TCP/IP协议 + XML流协议的组合。所以这个了对象的作用从字面上看应该是,写包与读包,作用为从服务端读写数据。如何android studio 导入asmack源码

D. Android 中 实现两个客户端通过一个 PC服务端实现两个客户端之间的即时通讯怎么做

擦 就是客户端可以相互发消息呗…说的好复杂…
你可以用openFire+asmack 开源的 服务端是现成的,android端调用asmack api 即时通讯的基本功能都有 自己google下~

E. android消息推送怎么实现

极光推送可以轻松实现android消息推送。具有操作步骤如下:
1、到极光官网注册账号:https://www.jpush.cn/
2、创建应用,按照要求填写你的应用名称,包名提交
3、下载案例,一般情况测试是能收到信息的
4、集成到自己的项目中,按照官网的集成http://docs.jpush.cn/pages/viewpage.action?pageId=557214
5、集成时将注意的要点,官网上也有说,但是我再强调一下要注意两个权限的包名填写,有可能直接用案例上的拷贝到自己的manifest中时没有替换掉包名,切记,要替换成自己的项目的包名。
极光推送已经覆盖了近10亿Android、IOS终端,30多万款APP应用,服务总用户数超过30亿,每天消息推送量达5亿多条,已成为移动应用数据平台。极光分享帮助应用具备国内主流社交平台分享功能,提供新浪微博、QQ、微信等第三方社会化分享服务,提高产品推广效率,帮助产品提高用户体验,获得更多用户。

F. android当服务器发来了一条信息怎样让它在程序图标上提示有新信息来了

消息推送可以实现。
所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。

推送方法如下:

1)通过SMS进行服务器端和客户端的交流通信。

在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,可以实现完全的实时操作。但是问题是这个方案的成本相对比较高,且依赖于运营商。

2)循环主动定时获取

这种方法需要客户端来做一个定时或者周期性的访问服务器端接口,以获得最新的消息。轮询的频率太慢可能导致某些消息的延迟,太快则会大量消耗网络带宽和电池。

3)持久连接

这个方案可以解决由轮询带来的性能问题,但是还是会消耗手机的电池。我们需要开一个服务来保持和服务器端的持久连接(苹果就和谷歌的C2DM是这种机制)。但是对于Android系统,当系统可用资源较低,系统会强制关闭我们的服务或者是应用,这种情况下连接会强制中断。(Apple的推送服务之所以工作的很好,是因为每一台手机仅仅保持一个与服务器之间的连接,事实上C2DM也是这么工作的。即所有的推送服务都是经由一个代理服务器完成的,这种情况下只需要和一台服务器保持持久连接即可。C2DM=Cloud
to Device Messaging)。

相比之下第三种还是最可行的。为软件编写系统服务或开机启动功能;或者如果系统资源较低,服务被关闭后可以在onDestroy ()方法里面再重启该服务,进而实现持久连接的方式。

C2DM内置于Android的2.2系统上,无法兼容老的1.6到2.1系统;且依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经常不可用。

建立在TCP协议之上的XMPP协议,不仅可提供可这种持久连接的功能,能实现服务器和客户机的双工通信,还能不依赖与系统版本和google服务器的限制,提供了比较好的解决方案。

2. XMPP协议

XMPP全称Extensible Messaging and Presence
Protocol,前身是Jabber项目,是一种以XML为基础的开放式即时通讯协议。XMPP因为被Google
Talk和网易泡泡应用而被广大网民所接触。XMPP的关键特色是,分散式的即时通讯系统,以及使用XML串流。XMPP目前被IETF国际标准组织完成了标准化工作。

Android push notification(androidpn)
是一个基于XMPP协议的java开源实现,它包含了完整的客户端和服务器端。该服务器端基本是在另外一个开源工程openfire基础上修改实现的。

androidpn客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack,不过我们不需要自己编译,可以直接把androidpn客户端里面的asmack.jar拿来使用。客户端利用asmack中提供的XMPPConnection类与服务器建立持久连接,并通过该连接进行用户注册和登录认证,同样也是通过这条连接,接收服务器发送的通知。

androidpn服务器端也是java语言实现的,基于openfire开源工程,不过它的Web部分采用的是spring框架,这一点与openfire是不同的。Androidpn服务器包含两个部分,一个是侦听在5222端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。服务器的这两方式,意义非凡:当相应的TCP端口被防火墙封闭,可以使用轮询的方式进行访问,因此又有助于通过防火墙。

G. 基于Openfire+XMPP下通过asmack开发Android端的即时通讯APP方法与步奏

有相应的文档和demo。文档连接发泥私信了,具体demo其实也有现成的,用到的类有限不是很多。

H. 如何在 aSmack xmpp 中创建组 android 吗

您可以创建用户组,
public boolean createGroup(XMPPConnection connection,String groupName) {
if (connection == null)
return false;
try {
connection.getRoster().createGroup(groupName);
Log.v("Group created : ", groupName);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

如果你踢在 xmpp 中创建分组聊天再试试下面的方法。(* * 未选中)
public class createMucAT extends AsyncTask<Void, Void, MultiUserChat> {

private RosterGroup group;
private Connection conn;
private String groupId;
private String groupName;

public createMucAT(Connection conn, RosterGroup group, String groupId,
String groupName) {
this.group = group;
this.conn = conn;
this.groupId = groupId;
this.groupName = groupName;

}

@Override
protected MultiUserChat doInBackground(Void... params) {
String groupTag = group.getName();
MultiUserChat chat = null;
try {
chat = createGroupChat(conn, groupId, groupTag, conn.getUser());
} catch (XMPPException e) {
e.printStackTrace();
}
return chat;
}

@Override
protected void onPostExecute(MultiUserChat result) {
super.onPostExecute(result);
//handle the result here
}

private MultiUserChat createGroupChat(Connection conn, String groupId, String groupName, String nickname) throws XMPPException {
MultiUserChat muc = new MultiUserChat(conn, groupId + "@" + ConnectionService.CONFERENCE_IP_ADDRESS);
muc.create(nickname);
Form form = muc.getConfigurationForm();
Form submitForm = form.createAnswerForm();
for (Iterator<FormField> fields = form.getFields(); fields.hasNext();) {
FormField field = (FormField) fields.next();
if (!FormField.TYPE_HIDDEN.equals(field.getType()) && field.getVariable() != null) {
submitForm.setDefaultAnswer(field.getVariable());
}
}
List<String> owners = new ArrayList<String>();
owners.add(ConnectionService.getConnection().getUser().toString());
submitForm.setAnswer("muc#roomconfig_roomowners", owners);
submitForm.setAnswer("muc#roomconfig_persistentroom", true);
submitForm.setAnswer("muc#roomconfig_roomdesc", groupName);
muc.sendConfigurationForm(submitForm);
return muc;
}
}

I. android studio怎么使用asmack.jar

工具/原料

Android Studio
可导入Android Studio的项目一个
方法/步骤

点击启动AndroidStudio,启动后的界面如图所示。

复制你需要添加的jar,并将其黏贴到app— —src— —main— —libs文件夹下,可运行的AndroidStudio项目都有像这样的目录结构。可以看到虽然jar已经复制黏贴过来了,但是还未导入,所以看不到jar中包含的内容。而已导入的jar,则可以看到jar中内容。

右键点击新黏贴的jar,在弹出菜单中点击Add As Library.

选择你要导入到的那个mole(在AndroidStudio中相当于Eclipse中的project),如果当前只是一个项目,下拉框中除了app也没有其他的内容,那么直接点击ok确认。

这样jar就被添加到项目中来了。

J. 有谁知道怎么用android的xmpp协议实现即时通信

1.com.way.service:这是本应用的最重要的包啦,为了简单,本应用只用了一个服务,包括登陆、聊天、超时判断以及连接等等,都是在此处处理。

2.com.way.smack:这里是对asmack第三方包重新包装的一个工具包,方便本应用直接调用。

3.com.way.activity;理所当然就是所有Activity咯。

4.com.way.app:这里有一个广播接受者和Application类,主要是用来接受系统广播,比如说网络连接上或者断开,开关机等等广播。

5.com.way.db:没错,就是操作数据库咯,总共是两个ContentProvider,一个是存储好友,一个是存储聊天记录。

6.其他的一些包大都是控件或者工具类,为了方便自己下次使用以及大家直接到自己的项目中

阅读全文

与androidasmack聊天相关的资料

热点内容
京管家app哪里下载 浏览:31
文件夹横向排列的竖向排列 浏览:449
51单片机驱动摄像头模块 浏览:687
政府文件加密没法转换 浏览:370
android判断栈顶 浏览:329
凭证软件源码 浏览:859
androidwebview滚动事件 浏览:9
如何将电脑上的图片压缩成文件包 浏览:899
程序员转金融IT 浏览:834
黑马程序员培训效果如何 浏览:911
本地集成编译 浏览:528
韩国电影哪个app可以看 浏览:703
玖月授权什么app什么梗 浏览:785
怎么使用服务器上的ip地址是什么情况 浏览:750
手机密码加密后怎么解密 浏览:343
华为云的服务器的ip地址怎么访问不 浏览:367
webstormvue在线实时编译生效 浏览:184
3225pdf 浏览:171
java中的常用类 浏览:395
安卓手机oppo反向色调怎么开 浏览:138