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

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

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

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

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

推荐阅读

2022年六大英文学习软件

相信大家都有英语烦恼的问题吧,每个人都想学好英语但还是太难了,今天我就来给大家介绍一下2022年六大英文学习软件,相信你只要选择了以上这几款软件之一,你的英语一定会学的非常好的。1.乐词英文学习软件乐词英语教学app一个在手…查看详情

python与c++学哪个好

计算机二级c和python哪个好考?哪个语言更有用,必然是见仁见智,无论选哪一个都会有人不同意,但是可以肯定的是,想学习编程的话,这两个语言都很不错,学完都会帮助你打开新世界的大门。有意思的是,C和Python差不多正好是编程世界的…查看详情

免费修图软件app有哪些?免费修图软件app介绍

当自己看到自己喜欢的图片或者是拍摄照片之后,保存在手机里,想要带来更好的效果,就可以进行修图,其实修图之后会让图片变得更加清晰,而且还可以打造出明星照片的感觉,但是在选择修图的时候,应该要找到一些好的软件,有些软…查看详情

优化供应链,是B2B企业加速发展的主要动力

在国内,B2B电子商务并不是什么新鲜的话题;但真正利用B2B手段在供应链上创造价值的企业仍相对缺乏。对B2B和供应链的真正价值认同、行业标准和经验的缺乏是我国B2B电子商务发展缓慢的重要因素,使得优化供应链成为B2B企业加速发展的动…查看详情

加客户微信被拒怎么办?可以这样联系TA!

你是否有被客户拒加微信的经历呢?向客户索要联系方式,或要求加微信好友时很多顾客会各种推脱 之所以如此,主要由于信息泄露问题十分严重大多数顾客都已产生戒备心理担心留下联系方式后,会被反复叨扰还在为没有添加客户好友无法给ta发送信息而...查看详情

怎样在网上做生意赚钱

网上怎样才能挣钱?网上挣钱的门路很多,就像我们平常做买卖一样,有的能挣钱有的挣不到钱,同行没同利,就是这个理,我们要想在网上挣到钱,可以开直播,卖货,卖些季节性的衣服,水果一类的东西,少便宜点,大众化,需求量自然不…查看详情

2023年水费多少钱一吨

  优质答案(1)  收取二十几元一吨的水费违法。《民法典》中规定违反要求私自涨水费属于违法行为,需要承担相应的法律责任。正常的水费是4块左右一吨  优质答案(2)  不合法,  因为自来水国家是由物价部门进行定价的…查看详情

图片制作软件选哪款?这几款值得选择

怎样让自己的图片更加的独一无二,或者是想要增强高级感提升质感的话,都是缺少不了一款好用的图片制作软件的,现在这样的软件不仅类型多,所带来的各种功能也越来越丰富了,那么到底图片制作软件选哪款呢?这几款都值得选择,一…查看详情

做商城网站需要多少钱

做商城网站需要的费用因多个因素而异,包括网站规模、功能需求、设计复杂度和开发方式等。以下是一些可能影响商城网站开发费用的关键因素: 1.网站规模和功能需求:商城网站的规模和所需功能将直接影响开发成本。一个简单的小型…查看详情

软件开发自学步骤 软件开发如何自学?

  很多人想开发一款手机软件应用基本都是请第三方外包公司或软件工具进行,但是却不知道软件开发需要经过什么样的流程,下面小编就给大家来详细介绍一下软件开发自学步骤 软件开发如何自学?这一块的相关内容,希望能帮助到…查看详情

中小企业如何保护知识产权?看完这几点你就知道

知识产权是在科学技术、文学艺术等领域中,发明者、创造者等对自己的创造性劳动成果享有的专有权。图片来源网络,侵删随着经济社会的不断发展,知识产权对经济发展的重要性不断凸显。作为国民经济支柱的中小企业,受知识产权的影…查看详情

如何增加百度收录 增加百度收录的几种方法介绍

  相信很多的公司自己做了网站后都想办法增加网站在百度的收录,现在很多的网站收录情况都不是很理想,下面万商云集小编给大家来详细介绍一下增加百度收录的相关方法技巧,希望能帮助到大家增加自己网站在百度的收录。  一、…查看详情

字符串是什么意思 哪些属于字符串

相信很多没用接触到计算的朋友都不知道字符串是什么意思,在计算机技术领域比较常用,在编程代码这块也比较常见,下面万商云集小编给大家来详细介绍一下字符串的相关常识。  什么是Python中的字符串?  我们许多熟悉C,C++等编程…查看详情

淘宝产品上下架时间怎么优化?

淘宝商品上下架时间是影响淘宝商品排名的因素之一,越接近下架的商品,排名越有可能靠前。对于小卖家或者新开设的淘宝网店而言,受成本和淘宝网店等级的影响,很多推广活动都无法参加,此时设置商品上下架时间就成了获取商品流量…查看详情

盘点那些好用的记账代理软件排行

记账代理软件是专门为公司财务发展而设计的,对公司的财务记账有着较大的作用,但是对于公司来说,选择一个好的记账代理软件是比较困难的,今天我就来为你们盘点那些好用的记账代理软件排行。 1.畅捷通记账代理软件 畅捷通是…查看详情

首页

产品

万商学院

客户服务

会员中心

当前站点

h

选择站点

全国站成都

一 客户顾问-张三

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

    电话咨询

    在线咨询