实现方法及架构:网站页面即时通讯功能
2020-12-31 11:17:14 阅读(197) 评论(0)
以聊天室为例, 实现web聊天室的方法有很多,包括:基于ajax技术的实现,基于comet(Pushlet)基于XMPP协议的实现,以及基于flash的XMLSocket和远程共享对象的实现。 (1)基于ajax技术的实现。 ajax(异步JavaScript和XML,Asynchronousjavascriptandxml),其功能是实现页面与服务器端的无刷新交互。使用ajax实现web聊天室的基本原理是通过ajax从服务器中获取数据,然后更新页面显示。这种方法简单明了,缺点是实时性不高。 (2)基于Comet技术的实现。 Comet是一种新的Web应用架构。在此架构开发的应用中,服务器端将主动将数据推送到客户端程序,而不需要客户端显式的要求。Comet架构非常适合事件驱动的Web应用,以及对股票交易市场分析、聊天室、Web版在线游戏等交互性和实时性要求较高的应用。 Pushlet是Comet实现(Pushlet是Comet框架的开源):在Servlet机制下,数据直接从Java对象推送到服务器(push)不需要Javaplet或插件的帮助就可以访问客户端页面。它使server端能够定期更新client的web页面,这与传统的request/response不同。 基于HTTTP流的Pushlet,该技术常用于多媒体视频、通信等应用,如QuickTime。与装载HTTP页面后立即关闭HTTP连接的做法相反,Pushlet通过HTTP流不断将新数据推送到client,HTTP连接在此期间不断打开。如何在Java中实现这种Keep-alive的长连接,请参考Sun提供的《HTTPPersistentConnection》HTTP1和W3C.1规范》。 (3)基于XMPP协议的实现 XMPP(可扩展消息处理现场协议)是基于XML的协议,是专门为即时消息和在线现场检测而设计的通信协议。它促进了服务器之间的准确和即时操作。即使其操作系统与浏览器不同,该协议最终也可能允许因特网用户在因特网上向任何其他人发送即时消息。XMPP的前身是Jabber,一个由开源组织产生的网络即时通信协议。开源聊天系统服务器Openfire是基于XMPP协议的Jabber服务器。 webIM的功能可以通过Flash或ajax与Jaber服务器交互, (4)基于flash的XmlSocket的实现 基于rtmp协议,FlashmediaServer是一种强大的流媒体服务器,它提供了强大的流媒体交互功能。在FMS中,提供远程共享对象(SharedObject)客户端可以创建并连接到服务器端的远程共享对象。许多客户端可以连接到相同的远程共享对象。任何客户端都修改了共享对象,服务器将将共享对象的修改信息发送给所有其他连接到共享对象的客户端。这种远程共享对象的机制可以在各个方面实现以下功能:· 远程控制幻灯片放映 · 文字聊天 · 网络对战 · 远程选择和播放歌曲 · 现场拍卖 · 客户服务应用。 远程共享对象非常适合在web聊天室实现群聊功能。 远程共享对象非常适合在web聊天室实现群聊功能。为每个群组建立一个远程共享对象。通过这种方式,任何用户都可以通过服务器在群组中发送信息,并自动将其发送给所有群组成员。 用远程共享对象实现单聊是不现实的。我们需要使用socket来实现相应的单聊。客户端通过socket服务器与其他客户进行私人聊天。通过socket服务器转发聊天信息。 这种方法是实现web聊天室最有效的方法。即时通信系统架构简要介绍了大型商业应用的IM系统架构。低耦合是设计这种架构的重要组成部分,将整个系统设计成多个相互分离的子系统。我将整个系统分为以下几个部分:(1)状态信息系统 (2)好友系统 (3)P2P系统 (4)其他扩展业务系统首先看状态信息系统(1)connd 可支持UDP或TCP的Client接入服务器,一般建议先选择TCP。connd可以布置多台,client接入时,可以通过简单的DNS轮询实现负载平衡。connd可以安排多个。client接入时,可以通过简单的DNS轮询实现负载平衡。cond功能是维护连接和转发信息包。(2)pconndproxyconnd,代理访问服务器,是connd的扩展,除了connd的功能外,还支持webserver等服务器的访问。(3)msgd消息处理服务器的主要功能是用户状态管理、消息转发(包括合理性验证)和离线消息保存。说一个用户登录成功后,通知所有朋友的状态。在我设计的系统中,用户状态简单地被视为类似的文本聊天信息。以下用户U上线流程,他有好友F1,F2。(1)connd收到U在线消息,并将消息发送到U所在的msgd。(2)msgd获取U的好友,F1,F2;如果F1、F2和U不在同一msgd上,msgd将消息通过connd转移到F1和F2所在的msgd上。(3)最终msgd通过connd将在线通知发送到F1和F2。msgdU是如何获得最新朋友的?我想重点描述一下这个问题。用户的好友数据都在另一个子系统中:好友子系统。msgd通过TCP(为什么使用TCP?)主动从好友系统获取。同时,msgd还缓存了好友数据。msgd获取用户好友时,如果cache是最新的,直接从cache取,否则要从好友子系统取。现在关键问题出来了,如何确定用户的朋友是最新的?我们应该根据不同业务的不同特点灵活采用不同的方法。请看一种高效的处理方法:(1)好友子系统为每个用户的好友计算hash值(可使用MD5)。(2)client在获得好友时,也会获得这个hash值;在发送与好友相关的信息时,将hash值带给msgd。(3)msgd第一次从好友子系统获取用户好友时,也会获得这个hash值;比如转发状态信息,获取好友时,将client带来的hash1与自己的hash2进行比较。。。像IM这样的业务特点是写朋友的数据很少,读很多。与阅读的消耗相比,写作基本上可以忽略不计。以上方法,两者的hash值基本相等,直接从cache获取好友数据。这种处理方法也可以引入到其他应用业务中。建议不要每次都粗暴地跨过程获取类似的朋友数据。
推荐阅读
- win10怎么调节
在Windows10 中,调节屏幕亮度可以让您的显示器更加适合看,也可以为您的眼睛带来更多的舒适感觉。如果您想调节屏幕亮度,可以通过以下几种方式进行。 1.使用显示设置调节屏幕亮度 让我们来看一下如何使用Windows10中的显示…查看详情
- mybatis是什么
什么是mybatis为什么要使用mybatis?它是一个半自动映射的框架。这里所谓的“半自动”是相对于Hibernate全表映射而言的,MyBatis需要手动匹配提供POJO、SQL和映射关系,而Hibernate只需提供POJO和映射关系…查看详情
- 2023年闯红灯扣几分罚多少钱
交通规则约束着每一位交通参与者,特别是开车的人,一旦出现违章,轻则扣2分,严重的直接被扣12分,吊销驾照,还要面临拘留处罚。有车的人开车时都不希望出现违章,自己的驾照一个周期就12分,扣分多了自己开车也受限制。如果不小心出现违章,很多人…查看详情
- 剧本杀是什么游戏 剧本杀是什么意思
剧本杀是一种推理解谜游戏,也称为密室逃脱游戏。游戏中,玩家扮演着不同的角色,通过调查、探寻线索和推理来破解谜题,最终揭示真相。游戏的场景通常设定在一些封闭的地点,例如:酒店、别墅、学校、医院等,参与者需要在规定的时间内完成任务,达到游戏…查看详情
- 儿童教育软件哪个好 儿童教育软件排行榜前十名
儿童的起步教育是非常重要的,很多的家长在选择儿童学习教育软件的时候都十分的谨慎,下面万商云集小编给大家来介绍下儿童教育软件哪个好 儿童教育软件排行榜前十名这方面的详细内容。 1.儿童学习乐园 儿童学习乐园是一款针对学前儿童亲子早教益智…查看详情
- 2021最新适合企业的销售管理软件排行
企业销售管理软件又名crm管理系统,涵盖整个销售业务流程,对于销售者、管理者都很有帮助的,这也是为什么越来越多的中小型企业开始使用crm销售管理软件的原因,针对此类现象,本文整理了一份2021最新适合企业的销售管理软件排行。 一. Team…查看详情
- 专利权的转让协议能不能免税?
与技术转让、技术开发相关的技术咨询、技术服务,是指转让方(或者受托方)根据技术转让或者开发合同的规定,下面万商云集小编给大家详细介绍下这块内容。 一、专利权的转让协议能不能免税 根据《中华人民共和国税法》等相关法律的规定,专利权的转让经…查看详情
- 极力推荐的北斗导航系统手机软件,旅游再也不怕找不到好玩的了
现在是科学技术的社会,许多北斗系统对各位来讲都尤为重要,例如我们的日常生活也离不了北斗导航系统,它带各位带来了许多快捷,接下去让笔者给各位介绍这几种北斗导航手机软件1.北斗导航是一种便捷实用的导航仪,这款北斗导航手机版适用骑车,徒步,驾车导…查看详情
- 2021最好用的营销软件大全盘点
在现代生活中处处充满了营销,一个人的吃穿住行,似乎都是通过营销来获取的。在之前,似乎有很多人对营销都产生心理,而现如今,人们已经接受了营销的生活方式。直接的让你购买这样东西你可能不会去买,但是如果加上一些营销的策略和方式,你就会心甘情愿的买…查看详情
- 模拟炒股软件哪个好?这几种比较好用
虽然说炒股是在虚拟平台做交易,但是了解其中的一些交易规则之后,想要赚钱也变得容易,一而对于一些没有相关经验的人们来说,不要轻易的踏进股市,不妨通过模拟炒股软件来了解具体的规则,那么模拟炒股软件哪个好呢?这几种比较实用,大家可以了…查看详情
- 代运营网店靠谱吗?靠谱的代运营网店什么样?
“开网店什么都不用管,交给代运营网店打理还能月入数万”,这话你会信吗?近段时间就有不少朋友因为误信代运营网店宣传,结果上当受骗。但是如果不靠代运营网店,那些新手也会因为缺乏经验或者没有精力去打理网店而导致网店关闭,甚至现象比比皆是。接下来为…查看详情
- app软件怎样制作?app软件制作的步骤有哪些?
现在有很多的软件都是需要进行开发的,其实每一款软件在进行制作的时候,也都应该要有相关的步骤,有一些软件制作起来相对来说还是非常简单的,操作起来也比较简单,但是能够带来更加轻松,使用的效果也会更加流畅,所以说在进行软件制作的时候,…查看详情
- 为你分享五个网站建设步骤
互联网时代下,无论你是创业者、博主还是企业人员,都有很多唾手可得的网络营销平台可以供你使用。然而博客/账号被封禁、服务商倒闭等等情况并不少见。为了防止多年的努力在这种情况下付之东流,小万建议大家建立一个自己的网站,从而吸引更多客户,达到销售…查看详情
- 上线了小程序怎么收费
顺丰小程序如何查看已寄快件费用? 微信公众号搜顺丰速运,点右下角我,输入寄件时所用的手机号注册 下拉找到发票申请栏,跳转进入申请发票页面,就能看到寄件所有费用(只显示近一年的顺丰运单) 顺丰小程序如何查看已寄快件费用? 顺丰小程…查看详情
- 电影版权如何登记?可体现作者价值、保障作者权益
对电影作品进行版权登记保护是对电影人知识产权的尊重,是促进电影业良性发展的保障。同时它也是作者的无形财产,可代表作者价值,并可通过版权获取经济收益。下文将带你了解电影版权如何登记、保护期限等相关问题。 图片来源于网络 电影版权如何登记?1.…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP

企业首选的数字选用平台






