首页 >知识讲堂 >网站建设知识>实现方法及架构:网站页面即时通讯功能

实现方法及架构:网站页面即时通讯功能

2020-12-31 11:17:14 阅读(207 评论(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获取好友数据。这种处理方法也可以引入到其他应用业务中。建议不要每次都粗暴地跨过程获取类似的朋友数据。

以上就是关于实现方法及架构:网站页面即时通讯功能的相关介绍,更多实现方法及架构:网站页面即时通讯功能相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对实现方法及架构:网站页面即时通讯功能有更深的了解和认识。

内容来源:网络,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

2021最值得入手的6款免费的收银系统

收银系统是每家店铺都必须需要的一个收银工具之一,那么收银系统的效率决定着一家店铺的服务态度,那么,从现在的市场层面来看,收银系统的装备有很多,免费的收银系统又有哪些呢?下面,*为大家整理了一些免费的收银系统。供大家…查看详情

小程序开发成本一般需要多少钱?小程序怎么收费?

小程序的开发其实是非常关键的,对技术人员的要求也比较高,现在很多的人都特别喜欢使用小程序来搜索东西,所以说很多的企业也都会建立微信公众号小程序,这样能够得到很好的推广,而且还能够吸引很多的浏览量,但是在进行小程序…查看详情

免费读小说软件哪个好用?这几款软件就比较不错

很多人在空闲的时候都喜欢读小说,其实现在读小说的软件也是非常多的,每一款软件带来的效果也是不同的,有些阅读小说的软件需要收费当看到特别精彩的地方是突然要收费,也是很多人都不能理解的。所以说这个时候大部分的朋友们都…查看详情

有哪些电子相册制作软件免费又实用?

照片可以帮助我们保留住生活某一瞬间的美好,每当你看到照片时也能体会到当时的愉快心情。照片可以做成电子相册储存在云端,那么,有哪些电子相册制作软件免费又实用?请看下面的软件介绍:1.相册制作它是一款拥有海量相册模板的电…查看详情

小本创业赚大钱大全

  小本创业可以是一种非常好的赚钱方式,尤其是对那些拥有一些资金但不想花费太多的人来说。虽然小本创业的路径选择繁多,但是依旧有很多创业者不知道如何选择创业项目。以下是一些小本创业赚大钱的建议,希望能对有创业意向的…查看详情

网页设计工资一般多少

开始学网页ui设计,不知道这好不好找工作,工作好吗?论人才需求人才需求每日超过89750个职位,目前UI交互设计人才缺口高达50W+,随着互联网的发展,估算UI人才缺口将会超过200W论就业范围全栈UI设计师就业范围广,覆盖率高达99%,就...查看详情

美发管理系统的五个重要核心功能板块

随着科技的发展与进步,人们的生活水平提高,各种满足人们生活需求的企业也逐渐上市,但是每一个企业都应该有自己的一份管理系统,今天小编就来围绕“美发”这一主题来说说关于美发管理系统的五个重要核心功能板块。 一、分析…查看详情

constantly是什么意思

constantly是什么意思?constantly[英][ˈkɒnstəntli][美][ˈkɑ:nstəntli]adv.时刻;不断地,时常地;常川;历来;例句1Mynerveswereconstantlyonedge.我的神经时刻处于...查看详情

电脑没有声音了怎么恢复?

  优质答案(1)  首先,电脑无音看似简单,其实有时问题比较复杂,既涉及到*件方面的问题又涉及到软件方面的问题。因此,要先查明原因,看是软件还是*件出了故障,然后针对问题对症下药。千万不能原因不明,就乱捣一气,搞不好会把系统弄…查看详情

各种商标注册方式的区别你知道吗?

现在又越来越多的人有商标注册的需求,所以也有越来越多的人会去了解商标注册方式有几种,以便选择最方便最适合自己的注册方式。接下来,小万将为大家介绍商标注册方式有几种?不同的商标注册方式都有什么区别?图片来源于网络 …查看详情

蓝光dvd和普通dvd有什么区别

蓝光dvd的光盘和普通的DVD9光盘有什么区别,外表好像没区别吧?一张单层的蓝光光碟的容量为25或是27GB,足够烧录一个长达4小时的高解析影片。双层可达到46或54GB,足够烧录一个长达8小时的高解析影片。而容量为100或200GB的,分...查看详情

个人怎样注册商标?最详流程一文知

简单来说商标就是一个商品的牌子,商标对于一个企业来说是相当重要的。那么就有人问了,如果是个人的话应该怎么注册呢?流程又是什么?今天小万就给大家分享一下,个人怎样注册商标的吧,*阅读。 图片来源于网络现在我国对只是产…查看详情

exb文件用什么打开

exb文件如何用cad打开?具体步骤如下:1.首先,使用CAXA电子图板2007软件打打开exb图纸文件。打开之后,点击菜单栏文件选择另存文件。2.在保存类型中选择保存版本和保存格式。3.输入文件名称之后点击保存按钮。4.完成操作之后,一个...查看详情

专利转让需不需要登记备案?(新政策)

  自己发明的成果是可以申请专利的,申请专利之后就会受到专利法的保护,别人是不能侵犯的,专利也是可以进行转让的,那么专利转让需要登记备案吗?其实很多人对这一块都不是很熟悉,而且这一块还算是比较重要的,下面*就给大家来…查看详情

做一个网站的步骤 制作网站的全过程

想要了解到更详细的信息,大部分的人都会选择上网来进行了解,所以说现在是一个网络的时代,不管是了解什么样的信息都可以选择网站,因此很多的企业为了能够更好的展示自己的信息和自己的产品,都会建立属于自己的网站。但是也有…查看详情

首页

产品

万商学院

客户服务

会员中心

当前站点

h

选择站点

全国站成都

一 客户顾问-张三

已为0个客户提供专业互联网服务咨询
  • 手机号码
  • 验证码图形验证码换一张
  • 短信校验码

    电话咨询

    在线咨询