移动端访问不佳,请访问我的个人博客 使用XMPP已经有一段时间了,但是一直都没深入研究过,只是使用SDK做一些简单的操作,看了许多大神的博客,自己总结一下,准备写一系列关于XMPP的使用博客,以便于自己更加深入学习~ IM协议及服务器选型 http://liudanking.me/arch/xmpp%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%80%89%E5%9E%8B/ 协议选型:XMPP已经成为标准的IM协议.XMPP官网:http://XMPP.org/ 服务器型:使用广…
这篇博文主要讲表情发送的一些东西. 参考:Android基于XMPP的即时通讯1-基本对话 1.准备好资源文件 采用的是emoji的表情,我打包好了,下载地址:http://files.cnblogs.com/files/pear-lemon/drawable.zip 2.表情布局文件layout_send_emotion.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmln…
本文是在上一篇博文Android基于XMPP的即时通讯1-基本对话的基础上,添加新的功能,文件传输 1.初始化文件传输管理类 public static FileTransferManager getFileTransferManager() { if (fileManager == null) { ServiceDiscoveryManager sdManager = ServiceDiscoveryManager .getInstanceFor(connection); if (sdMana…
xmpp是一个通信协议.因为这是个开放的协议,为了节俭开发成本,很多即时应用都采用了这个协议.Android上最常用的组合asmack +openfire.Asmack是smack的android版,是对xmpp协议进行了封装,并提供了丰富的api,简化了操作.Openfire是一个开源的IM服务器,基于Xmpp实现.换句话说使用xmpp开发即时通讯应用的话,服务器端已经开发好了,就是openfire. 现在我做的一个android应用就是采用asmack+openfire.说实在的,xmpp协…
什么是XMPP 介绍XMPP之前,先来看看GTalk. GTalk是Google推出的IM(Instant Messaging,即时通讯)软件,类似于QQ和MSN. 从技术角度来说,GTalk与QQ和MSN的差异是使用了不同的通讯协议,QQ使用了自己的私有协议(未公开),MSN也使用了自己的私有协议.而GTalk使用了XMPP(Extensible Messageing and Presence Protocol,可扩展消息与存在协议),这种通讯协议是一种公开的协议,有很多IM都使用了XMPP.…
闲暇之余,自己写了个简单的即时通讯,基于OpenFire服务器平台. 整个项目包括两个部分,一个是服务器端,一个是android手机端: 一.关于服务器端没什么好说的,下载安装配置即可 推荐下载带jar的程序安装,配置好java_jdk的可以使用压缩包解压安装 OpenFire下载地址:http://www.igniterealtime.org/downloads/index.jsp 顺便下载一个Spark,电脑端通讯,用于和你的安卓手机互发信息. 运行openFire截图…
最近蘑菇街团队的TT的开源,使我对im产生了兴趣,然后在网上找到了XMPPFramework进行学习研究, 并写了以下系列教程供大家参考,有写的不对的地方,请大家多多包涵指正. 目录索引 IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识 IOS基于XMPP协议开发--XMPPFramewok框架(二):服务器连接 IOS基于XMPP协议开发--XMPPFramewok框架(三):用户注册 IOS基于XMPP协议开发--XMPPFramewok框架(四):用户认证 IOS…
相关背景 IM(Instant Messaging)正在被广泛使用,特别是公司与它们的客户互动连接方案以及互联网与Web2.0相关的应用.为了解决即时通信的标准问题,IETF(互联网工程任务组 The Internet Engineering Task Force)成立了专门的小组.研究和开发IM相关协议. 通信协议 PRIM 空间和即时信息协议(Presence and Instant Messaging) 该协议是IETF撰写的关于即时通讯标准协议的早期版本,其抽象模型最早是在2000年2月…
前言 这是我的毕业设计.刚开始确定这个课题的时候是因为以前有稍微研究过一些XMPP协议,在这个基础上做起来应该不难.然后开始选技术的时候还有半年,我想为什么不从更底层做起呢!那就不用XMPP,当时接触过相关的即时通讯技术还有WebSocket,那为什么直接从更底层的Socket开始封装呢服务端就用Go语言吧,用来做IM服务器和HTTP服务器都很好. 技术选型 既然是基于Socket,iOS端我并不准备中C语言的Socket开发封装起,而是使用一个第三方库CocoaAsyncSocket.XMPP…
前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码. 即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持上可能有问题,所以选择openfire3.8.1+spark2.6.3是最合适的选择. Smac…
一.介绍 即时通讯在众多社交软件.生活软件以及教育软件中已经是必备的功能了,在当前国内,即时通讯SDK做的比较不错的有那么几家,例如环信SDK.融云SDK...,这两家做的都很不错,各有千秋吧,要是真让说出个不同,就我个人感觉融云的集成要更简单一些,就那么几步,有点开发基础都会,我之前在项目中集成过环信,解决了不少的坑才集成好.他们共同的特点就是,都只负责进行聊天,不管理好友之间的关系和用户的信息,它们都是在代理方法中设置用户的信息,包括姓名.昵称.头像等,环信中是通过IMessageModel…
#-*- coding: utf-8 -*- __author__ = 'tsbc' import xmpp import time #注意帐号信息,必须加@域名格式 from_user = 'chenjiangpeng@xtpt.e-u.cn' password = 'a1b2c3d4' #可以添加多个接收人 to_user = ['chenjiangpeng@xtpt.e-u.cn'] msg = "您好!这是条测试信息!" def to_msg(): ""&q…
1.融云即时通讯iOS SDK下载地址   http://rongcloud.cn/downloads  选择iOS   SDK下载 2.进行应用开发之前,需要先在融云开发者平台创建应用,如果您已经注册了融云开发者帐号,请前往 融云开发者平台 创建应用:如果您还没有注册融云开发者帐号,请前往 融云官方网站 首先注册开发者帐号,注册后创建应用.注册地址  https://developer.rongcloud.cn/signup 3.登陆融云开发者平台 https://developer.rong…
介绍 easy-im是面向开发者的一款轻量级.开箱即用的即时通讯系统,帮助开发者快速搭建消息推送等功能. 基于easy-im,你可以快速实现以下功能: + 聊天软件 + IoT消息推送 基本用法 项目分为easy-im-client.easy-im-server.easy-im-common三个模块. 服务端: 执行mvn package后生成easy-im-server.tar.gz,解压后至./lib目录执行命令: java -jar -Dport=8888 easy-im-server-1…
1.即时通讯项目中输入框(UITextView)跟随输入文字的增多,高度变化的实现 最主要的方法就是监听UITextView的文字变化的方法- (void)textViewDidChange:(UITextView *)textView 通过UITextView的contentSize的高度来决定textView的高度.随着TextView中文字的增多,TextView的contentSize也会随着变化,所以实现这个功能,contentSize是个很重要的属性 - (void)textView…
Label借助富文本显示图片 1.即时通讯项目中语音消息UI的实现,样式如图: 借助富文本在UILabel中显示图片和文字 // 1.创建一个可变的富文本 NSMutableAttributedString *voiceAttr = [[NSMutableAttributedString alloc] init]; if ([self.reuseIdentifier isEqualToString:@"receiveCell"]) { // 接收方的label:图片 + 时间 // 2…
现决定使用Openfire作为服务端,Openfire采用Java开发,基于XMPP的实时开源协作服务器.单台可支持上万并发用户. Openfire体系结构 Openfire体系由其提供的服务器端.客户端以及相应的开发库组成. Openfire 通常我们所说的Openfire就是指Openfire服务端,现在已经更新到3.10.3版本,该服务器实现了绝大部分的XMPP协议. 除此之外,还有大量的Openfire插件可供使用. Spark Spark是一个使用java开发的实时协作客户端,通过简单…
1.搭建服务器  -  安装顺序 - (mysql->openfire->spark) 数据库:mysql 服务器管理工具: openfire 测试工具: spark mysql 安装 http://www.cnblogs.com/xiaodao/archive/2013/04/04/2999426.html 注意点:在终端执行mysql命令时候,最后都要加封号(;) openfire安装http://www.cnblogs.com/xiaodao/archive/2013/04/05/300…
服务器端 新建空工程 使用Eclipse新建名为openfire的空java工程. 导入源代码 这里使用的是openfire的openfire_src_3_10_3.zip源码. 导入后将目录src/java设置为“Use as Source Folder”. 配置类库 将build/lib目录下的除了ant和src目录下的jar 包全部加入到Libraries中去. 使用Ant编译 切换至Ant视图 运行下面的Ant任务: 运行成功后,会生成target和work两个目录. 配置debug M…
#import "AppDelegate.h" #import "XMPPFramework.h" /* * 在AppDelegate实现登录 1. 初始化XMPPStream 2. 连接到服务器[传一个JID] 3. 连接到服务成功后,再发送密码授权 4. 授权成功后,发送"在线" 消息 */ @interface AppDelegate ()<XMPPStreamDelegate>{ XMPPStream *_xmppStream…
XMPP与HTTP的比较 XMPP的优势 Ÿ   1. 推送数据 HTTP只能从服务器哪里请求数据,除非服务器正在响应客户端请求,否则不能向客户端发送数据.但XMPP连接是双向的,任何一方在任何时候都可以向另外一方发送数据,只要连接是打开状态. Ÿ   2. 防火墙友好 XMPP对防火墙和NAT友好,因为服务器到客户端的连接是由客户端发起的,一旦连接,服务器就可以将其所需要的数据推送给客户端. Ÿ   3. 增强的安全性 XMPP构建在TLS和SASL上,具有更好的安全性 Ÿ   4. 更加丰富…
XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP协议已经被用来构建大规模即时通信系统.游戏平台.协作空间及语音和视频会议系统. XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块.XMPP中有众多系统:发布-订阅服务.多人聊天.表单检索与处理.服务发现.实时数据传输.隐私处理及远程过程调用等. 大多数社交媒体(Facebook及Twi…
XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP协议已经被用来构建大规模即时通信系统.游戏平台.协作空间及语音和视频会议系统. XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块.XMPP中有众多系统:发布-订阅服务.多人聊天.表单检索与处理.服务发现.实时数据传输.隐私处理及远程过程调用等. 大多数社交媒体(Facebook及Twi…
Presence 在XMPP协议中,我们使用presence来获取用户是否已经上线以及是否可以通信的状态. 为了能够知道自己联系人的状态以及让联系人知道自己的状态,用户上线后需要订阅联系人的状态,联系人也同样需要订阅用户的状态. 通过下面的消息订阅联系人的状态: <presence from="alice@wonderland.lit" to="sister@realworld.lit" type="subscribe"/> 当联系人…
Web 应用的信息交互过程通常是客户端通过浏览器发出一个请求,服务器端接收和审核完请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来,这种机制对于信息变化不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说,比如说在线游戏.在线证券.设备监控.新闻在线播报.RSS 订阅推送等等,当客户端浏览器准备呈现这些信息的时候,这些信息在服务器端可能已经过时了.所以保持客户端和服务器端的信息同步是实时 Web 应用的关键要素,对 Web 开发人员来说也是一个难题.在 WebSo…
连接服务器前需准备事项: 1.搭建好XMPP服务器 2.设置服务器地址和端口 [_xmppStream setHostName:@"127.0.0.1"]; [_xmppStream setHostPort:5222]; 3.调用connect 关键项: JID-格式必须为 "用户名"+"@"+"服务器地址",示例 :user@127.0.0.1 连接服务器必须进行JID设置,如果还没有账号可以设置任意值 具体代码如下: -…
接着上面说 用户注册是比较简单的,成功连接上服务器后,设置好JID,即可调用 [_xmppStream registerWithPassword:pwd error:&err] 进行注册 -(BOOL)registerUser:(NSString*)user withpassword:(NSString*)pwd { user = [NSString stringWithFormat:@"%@@%@",user,_xmppStream.hostName]; if (![_xmp…
服务端 服务器 许可证 操作系统 是否支持任意客户端登录 备注 ejabberd 开源 Elang 是 支持虚拟主机和集群 Openfire Apache Java 是 Tigase GPLv3 Java 是 支持虚拟主机和集群 客户端 Spark 使用Java开发,具备跨平台性 浏览器 strophe.js…
WebSocket支持二进制的发送,见jetty官网: http://www.eclipse.org/jetty/documentation/current/jetty-websocket-api-send-message.html Blocking Send Message 阻塞式 Most calls are blocking in nature, and will not return until the send has completed (or has thrown an excep…
1.1概述 实验环境: Windows 10 专业版 Vmware workstation 14.1.1 Ubuntu 16.04.3 Xilinx SDx 2017.4 实验内容: 国内Windows系统盛行,普通使用者或者是开发人员都喜欢用Windows,但其实,不管是软件开发人员还是硬件开发人员,在Linux/Unix操作系统下进行开发才是最明智的选择,在这里可以轻易找到任何有用的开源软件(开源并不代表免费),接下有时候有相关介绍开源软件的教程,如果大家喜欢的话! 本实验将使用vmware…