即时通讯IM总结

即时通讯IM总结,第1张

即时通信(Instant Message /IM)的含义
有许多的IM系统,如AOL、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议
协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过的IM协议包括:IETF的对话初始协议(SIP)和即时通讯对话初始协议和表示扩展协议(SIMPLE)、应用交换协议(APEX)、显示和即时通讯协议(PRIM)及基于XML且开放的可扩展通讯和表示协议(XMPP)协议(常称为 Jabber 协议)
XMPP
XMPPframeWork
配置MYSql服务器

配置客户端

XMPP的框架就是用的她 我们把TCP的Socket 叫做 流式 stream UDP 的socket 叫做 报文或报式 Socket

XMPP :Extensible Messaging and Presence Protocol,以Jabber协议(XMPP协议前身)为基础 XMPP协议基于可扩展标记语言XML,建立TPC/IP连接,完成C/S、C/C、S/S之间的数据传输。XMPP是一个消息传输国际化标准协议。 XMPP官网:>目前出现的IM产品,其通信方式主要有两种:
一种通信方式是把服务器作为客户端之间通信的媒介。

服务器负责对整个网络进行监听,每个客户端启动后,与服务器的监听端口进行连接,服务器派生一个新的工作线程去处理此客户端的请求,并负责将此客户端的请求数据中转到接收方。即客户端之间的连接请求和通信数据均需要通过服务器中转。

这种方式便于对客户端的数据进行流量分析和数据监控,但服务器的性能很容易成为通信的瓶颈。

在线检测即时消息传递。

另一中通信方式是客户端间采用点对点的方式直接进行通信。

此时服务器只负责协助客户端之间建立点对点连接,客户端直接建立连接后则直接进行点对点通信。

SIP协议,基于ip协议。一般用于建立语音和视频通信。目前sip协议已经被制定得较为完善。

xmpp是一种基于xml的协议。不仅可以实现文本之间的传递,也具有灵活的扩展性从而方便地实现更复杂格式文件的即时传递。

目前基本所有的通用IM产品,通信双方都是直接进行通信,而不必通过服务器来中转,造成对于用户间数据的监管非常困难。如此,如何防止商业机密和其他非法信息的传播也是一个重要的安全问题。

xmpp:基于xml很强扩展性,很强灵活性,很好开放性(源码开放),易于实现持久连接,很好安全性。

应用

google 发布世界上首个开源的Html5 sip 客户端

HTML5 SIP客户端是一款开源的,完全利用JavaScript编写的集社交(FaceBook,Twitter,Google+),在线游戏,电子商务等应用于一体。无扩展,无插件或是必备的网关,视频堆栈技术依赖于WebRTC。如同主页里的Demo视频演示,你可以轻松实现Chrome和IOS/Android移动设备之间的实时视频/音频通话。

很适合硬件(内存和运算能力)受限的嵌入式系统使用。

Html5 sip 客户端 新特性包括:

支持Audio / Video通话功能;

支持即时信息;

Presence;

呼叫保持/恢复;

显示呼叫转移;

支持多个账号;

双音多频信号(DTMF)使用SIIP INFO

MQTT是一个轻量级的消息发布\/订阅协议,它是基于手机客户端的消息推送服务器的实现一个理想的解决方案。我们可以从项目下载示例代码,您可以找到一个用PHP实现的服务器。“
架构如下:
wmqttjar MQTT协议是由IBM提供。您可以从以下网站下载。您可以添加jar包到自己的Android应用程序。
真的消息代理(RSMB),他是一个简单的MQTT剂,由IBM提供小也。默认情况下,1883端口负责接收来自服务器的消息并将它们转发到指定的移动设备。
山姆是一个PHP库编写MQTT。你可以从这下载它。
send_mqttphp是后通过山姆接收消息和发送消息到RSMB PHP脚本。<例代码: > > > > > > > > > >使用Android推
XMPP协议>这是我的项目的项目。事实上,官方C2DM服务器谷歌也是XMPP协议包的基础上。
XMPP(可扩展通信和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)和在线检测。这项协议可能最终允许互联网用户发送即时消息给任何人在互联网上。
androidpn是一个基于java的开源Android的推送通知实现XMPP协议。它包含一个完整的客户端和服务器。研究发现,源代码后,服务器改为基于openfire的另一个开源项目的实现,但更令人沮丧的是androidpn文件写的是韩语,所以整个研究过程是基本的阅读源代码。它的实现原理图如下:
androidpn客户端需要使用一个aSmack java开源XMPP协议,这个包是另一个开源项目,基于openfire的味道,但我们不需要自己编译,可以直接使用androidpn客户端asmackjar里面。xmppconnection的建立和aSmack服务器提供与客户的持久连接,并连接用户的注册和登录认证一样,通过这个连接,接收服务器发送的通知。
androidpn服务器也是java语言,基于openfire开源项目,但它的Web部件中使用Spring框架,它不同于openfire。Androidpn服务器主要分为两个部分,一是监听5222端口的XMPP服务,对xmppconnection类的客户沟通,是用户的注册和认证,并发送推送通知消息。Web服务器的另一部分,使用轻量级>根据实地观察,单台mqtt服务如果并发达到5w以上,就经常出故障;在2w左右内网访问服务器就比较卡了。
注:配置是4核 16G内存,虚机。配置有点差。对CPU的消耗比较高,内存基本没啥消耗,所以建议把CPU整好点。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10719758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存