没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
webim技术收集笔记
标签:杂谈 分类:开发技术与理念
是著名的即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通
讯服务器,可以在 上应用,也可以在局域网中应用。
(可扩展消息处理现场协议)是基于可扩展标记语言()的协议,它用于即
时消息()以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终
允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
的技术来自于 ,其实它是 的核心协定,所以 有时被误称为
协议。 是一个基于 协议的 应用,除 之外, 还支持
很多应用。
服务软件有很多,具体可以参考 官方网站的列表:
官网地址: !"
常用 服务器软件: !"#!$#%# #&'
其中最为
方便安装搭建的无疑是 ()*+',),一款基于 - 协议开源软件,() 有
'+./、+,!# 和 01 的不同版本,软件需要 % 环境支持,不过软件本身自带了环
境包,你可以根据你的需要下载不同的版本。
下载地址: +"+'+& !",!'!,#+,/ #2!)
更详细的安装配制可以参考网
页3.'4'!" 5#, /,'5+%6 #/7基
于开源
架设内部即时通讯服务的解决方案 3.'7
*1 是一个功能强大8基于 * 的 9客户端。采用 00 技术开发,这个客
户端只用到了 %:5+ 与 ;<。它具备基本的 即时消息功能,用户管理,基
于 =1 协议的群聊天功能。
近期学习总结:快速学习方法。
从开源代码那里了解到有四种代码可以参考:
、5
、5'!#5
、>$&!
、#&?
其中 5 单纯使用 #,使用 #! 来做 00 实现。
#&? 是 !) 的客户端,很多人都在使用它。
其中 >$&! 就是在他上面的 *@A 扩展,并且使用 #.# 技术。
5'!#5 使用 >.+ 做为页面布局的扩展,主要使用 #,另外使用 #%' 编程。呵呵
另外提供一套开源框架作为此类 * 开发的参考:
%:5+B:&5?B-'?
示范例子("!!"''? 是基于 的 协议的):
,&! %#5+ !""'?
其中 %:5+,提供用 %B@5'+#:*< 的开发 C0 的开发环境
# #!.5$!"
:&5?,提供基于 协议的 % 类库
+"+'+& !"!5##&5?+,/ #
%:5+-'?,提供 %B:*< 的桌面版 "'? 客户端,可以编译为基于
%:5+B;<B1:: 的 C+50'+5+!
,&! %#5+ !""'?
现在 * 可谓非常流行,其中已实现 * 的厂商包括大名鼎鼎的 #!.,<5
DD,+5!#!$:E,-!!"'-'?,新浪,'+ 的淘宝旺旺,很多很多,基于
* 的聊天引擎设计思路无非以下几种:
0/ 无刷新交互,设计一种时间间隔定期获取数据(如先每 6 秒刷新一次,
再‘按 6,,6,……刷新一次获取数据,目前利用这一思路实现聊天引擎
的开源产品很多,大家可以自己到 !! 网站查阅)
基于 .#' 技术的聊天引擎的实现
基于 1!& 技术的聊天引擎的实现
基于 > 服务器的 1!& 技术的聊天引擎的实现
6 基于 协议的聊天引擎的设计与实现(可以利用 F'# 或 0/ 或 # 与
服务器交互)
目前利用的最多的是通过 F'# 的 &':!5?B: 与网页的聊天 = 进行交互或直接利用
F'# 界面(可基于 F'/ 的 0C 或其他等),本文重点介绍第 6 种聊天引擎的设计与实现,
这也是大名鼎鼎 -!!"' 的 -'? 采用的协议,关于 协议,大家可以查阅
/& !" 官方网站,先想听听大家的意见,大家一般实现 * 是怎么
来设计与实现的呢?也是用开源的产品么?
引用: %> 5!&!+5
即时聊天,WebIM 开发之通讯模式介
绍
我打算写一个系列文章,介绍 +& 的方方面面,今天开始第一篇。
我之前发布了一个 +&,那个 +& 设计了前端 =、交互,后端程序和通讯只是随便写了
一下。作为一个交互很多的 应用,良好的后端设计可以减少数据库访问、减轻服务器
负载;良好的通讯模式更是可以较少服务器连接数、节省流量。这篇文章主要讲 即时
通讯中常用的技术。
;<< 是无连接的,;<< 通讯过程基本就是:客户端发送请求给服务器,服务器接收请求
给出响应信息,客户端接收响应信息显示在用户的显示器上,客户端断开连接。由此可知,
要实现即时聊天中的”即时”,我们有两个办法:服务器抓住连接不断开和客户端不断的向
服务器发起请求实现伪即时。当然用 F'#:!5? 可以实现真正的即时通讯,但这
样已经不是使用 ;<< 协议了,;<< 天生的优势(无需另外开端口、自动穿越防火墙)
也就无法体现。
短轮询!''+":核心思想是客户端定时去服务器取消息。为了实现即时效果,轮询的
间隔必须设计得足够短,另外为了操作的流畅,需要使用 0/来发送请求。本人的
D-G* 就是采用的此方案。这种方案的优点是:后端程序编写比较容易,发送完响
应信息马上断开连接,不会占用太多服务器资源。缺点是一般情况下,频繁的请求中有大
半是无用,这些冗余请求无形中浪费了带宽和服务器资源。我们可以通过判断用户的活跃
程度来决策请求服务器的间隔,我在6 的一个帖子提到过这种方法,但是间隔一旦长了,
消息的传送就有延时,违背了即时聊天的初衷了。
长轮询'!"!''+":基本原理是客户端向服务器发送请求,服务器接到请求后 !',
住连接,直到有新消息才返回响应信息并关闭连接,连接被断开期间用户的新信息会被服
务器缓存起来。客户端处理完响应信息后再向服务器发送新的请求。这种做法的优势是如
果用户一直没新消息,客户端不会频繁的轮询去服务器取消息,节省了流量,但是服务器
维持长连接是很消耗资源的。具体实现起来,前端这边基本不需要什么改动,依然是用
0/ 轮询取信息,后端需要在没有新消息时处理一下。
长连接#&+":其实很早以前就有人使用这种技术来实现聊天室的通讯。以前在
页面中嵌入一个+$&,+$& 里放一个使用长连接页面,服务器有新消息就会及时的
在 +$& 里反映出来,再依靠客户端的脚本解析出来就 (H 了。这样做一个比较严重的问
题是:使用 +$& 请求长连接时,无论是 @ 还是 )$!/ 都会认为页面没有加载完而显
示进度条,很难看。不过这个问题是可以解决的。)$!/ 支持了 :&+"0/,在
,>: 为 的时候就能接受数据,所以问题不大;@ 则只能在 ,>: 为 ,
即连接断开时才能得到返回值。但是伟大的 -!!"' 工程师使用了一个 5? 成功的解决
了这个问题:使用一个被称为“&')'I的 05+%,把 +$& 放在这个05+% 里就
(H 了。
#%,$!&5+', /&' 5!&.
%',>#,!5.& ,!&+!/&' 5!&
%5.J!&+4K/&' 5!&KL
%,:&='45.J!&+BK!#% 5"+KL
%#$J!5405+%(5K&')'KLMNM
&?#.+O#''>#5+'
#$J!5 !L
#$J!5 +KKL
#$J!5 +KP#5+>4K/%#5+KQPM
,!5.& ,!&+4OKB5.J!&+BKOL
QP#5+QKL
#$J!5 +KKL
#$J!5 5'!#L
#+$&.!5''#%$!,
%+$J+%4#$J!5 5@'&R/R/K,+%KL
#$J!5 ,1+',+$J+%L
#5!&&.+5+"
+$J+% +;<4KKL
无疑,使用长连接对于用户来说是最好的方案,用户体验最好(消息能及时的到达)、占
用用户带宽最少(不会发送无用的请求),但是会增加服务器的开销;长轮询是折中方案,
F5!!? 就是采用这种方案,不过做了一点改动:客户端发起的每个连接服务器都
!',:,这 : 中新消息会源源不断的返回给客户端,# 后连接关闭,客户端发起下
一个连接。这样做是因为 F5!!? 的用户会不断的打开、关闭新页面,如果每个页面都
建立一个永久的长连接,会阻塞浏览器其他请求,服务器也会吃不消的;短轮询因为实现
起来简单,适用于小型应用。
S">T 5!&TT+&,#+"#!
常规来说,有以下方法:
。使用 %0' 作为中介和服务器交互。不过用户必须为这交互过程编写 % 代码。
。使用 05+% 控件做中介。但是 05+% 的权限太大,未一定能得到客户信任。
。使用 F& 把某个窗体隐藏,然后用传统的方法进行 -@< 和 (:<。不过请求数据
的发送和状态都非常难控制
。使用 : 的 ;<< 来进行数据的传输。这个只适应于 *+T 或安装了
:@ 自带的 *+,!# 系统
6。使用 ,! 的 0##&'> 来写客户端程序。不过这需要客户端安装 ,! 组件。
!#+ 5以下称为 5是一个实现和服务器交互的组件。
实际上,它没有提供新的方法来进行和服务器的交互。
它的编写目的就只有一个:为了方便:
要方便代码的编写,要方便程序的发布。。
!#+ 5 采用第 种方法使用 +5!#!$ ;<<和服务器交互。
从作者采用这个组件做成的聊天室 '!#+ 5!&55".#和论坛
$!.& '!#+ 5!&F!.& 0#/可以看到速度实在快的厉害
即时通信 XMPP 协议示例程序(可与 QQ,MSN 等互通)
关键字: webim smack openre
运行环境:JH B
第三方包::&5?(() 服务器官方提供)
服务器:()
特点:可直接与 DD,:E,-'? 等账号绑定,可直接与 DD,-'?,:E
等聊天工具互通
通过这个 % 程序,让大家首先先了解一下基于 协议的即时通信的基
本原理,希望大家通过界面上的报文了解通信的远离,我先抛砖引玉一下,
核心源码:
代码
剩余33页未读,继续阅读
hu330459076
- 粉丝: 29
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页