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

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

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

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

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

推荐阅读

发明专利公开到授权需要多长时间?

   第三十五条发明专利申请自申请日起三年内,国务院专利行政部门可以根据申请人随时提出的请求,对其申请进行实质审查;申请人无正当理由逾期不请求实质审查的,该申请即被视为撤回。下面小编就带大家来看看详细的内容。  一…查看详情

专利权中三类的含义是什么

   专利权是由国务院专利行政部门依照法律规定,根据法定程序赋予专利权人的一种专有权利。下面万商云集小编给大家详细解释下专利权中三类的含义的相关内容。  一、专利权中三类的含义是什么  (1)专利权是国家依法授予专利…查看详情

运营网店的方法

当代越来越多的无业游民都选择开网店,网店确实是一个不错的途径,那么如何开网店,相信大家都已经了如指掌了,但是如何运营好网店,小编还没有系统的整理过。那么小编今天也来追赶一下潮流,整理一篇运营网店的方法。 一、提…查看详情

建网站不花钱免费建站

一般大企业都会打造不一样的网站建设效果,这样才能够得到很好的推广,但是也有些小企业在建设网站的时候不想要花钱。这个时候就应该要找到免费的建站平台,其实建网站不花钱可以找到很多的平台,只要选择对了平台,也能够制作出…查看详情

专利证书号有没有用 专利证书号的作用

    专利证书号是大家在申请专利权的时候获得的一个编号,很多人对这个编号不是很了解,下面万商云集小编就带大家看一下专利证书号的相关作用。    一、专利证书号的作用  专利证书号是已经发出多少专利的意思了,这和…查看详情

免费的视频聊天工具 2022好用的视频聊天工具

  现在很多的人都用视频聊天工具和朋友沟通,下面小编就给大家推荐下几款免费的好用的视频聊天工具。希望能帮助到你。多亏Skype等视频通话工具,人们在新冠疫情期间仍可与家人和朋友保持“面谈”。为了帮助人们更好地“见面”,德…查看详情

十大汽车保险公司排行榜

  近年来,汽车行业的发展日趋迅速,伴随而来的是汽车保险公司的蓬勃发展。随着汽车数量的增加和消费者的意识提高,汽车保险公司的市场竞争越来越激烈。在这个背景下,人们需要了解哪些是十大汽车保险公司排行榜,以帮助他们做…查看详情

windows10忘记密码怎么解决

  如果你忘记了你的Windows10帐户密码,你将无法登录到Windows系统中。然而,你不必担心,因为你有几个选项可以重置或恢复密码。以下是一些可行的解决方案:  方法一:使用Microsoft帐户密码重置  如果你使用Microsof...查看详情

代驾app排行榜 十大代驾app排行榜

代驾app的出现给大家的生活带来了不少便利,让大家出门在外有了安全的保障,不用再担心喝酒后不能驾车的问题,可以和朋友放心喝大胆玩了,今天就带大家一起盘点一下有哪些好用的代驾app。1.滴滴代驾滴滴代驾是滴滴旗下的一款代驾app,…查看详情

免费的ps软件有哪些 免费的ps软件排行榜

  相信很多的小伙伴在平时都会使用到ps软件,其实市面上也有很多这类型的PS软件,下面小编就给大家来详细介绍一下免费的ps软件有哪些  免费的ps软件排行榜这一块的内容,希望能帮助到大家,下面的这些ps软件都是很不错的。...查看详情

集成电路设计能不能获得专利权?

  根据相关法律规定,集成电路布图设计不能取得专利权,下面万商云集小编给大家来介绍下这方面的详细内容。  一、集成电路设计能不能获得专利权  根据相关法律规定,集成电路布图设计不能取得专利权,应由集成电路布图设计…查看详情

分频器的作用是什么

分频器上有个灯泡是干什么用的?分频器的小灯泡是用来保护高频喇叭的。在高频喇叭上接一个灯泡在高电压(峰值功率或大功率输入)时点亮能有效保护高音喇叭。分频器和接线板对喇叭有什么作用?音箱分频器的作用,是把设计好频率分频点(工…查看详情

2021年EHR人力资源管理系统怎么选,有哪些注意事项?

目前EHR人力资源管理系统受到越来越多的企业青睐,但是应对市场上各种知名品牌,公司在选择全过程中存在哪些常见问题,如何极端防坑,选择符合公司要求的系统?小万梳理了市场上各类ehr系统在选择时应该注意的要点,供各位参考学习…查看详情

php代码是什么

如何运行php代码?需要在计算机上安装PHP解释器,并且要在支持PHP的Web服务器或本地开发环境中打开PHP文件。具体步骤如下:1.下载和安装PHP解释器,例如从https://www.php.net/下载最新的PHP版本。2.安装支持P...查看详情

华为浏览器纯净模式怎么关闭

华为浏览器是华为手机自带的浏览器应用程序,它具有纯净模式(也称为无痕浏览模式)以提供更私密和安全的浏览体验。关闭纯净模式很简单,以下是一般情况下关闭华为浏览器纯净模式的方法:1. 打开华为浏览器:在您的华为手机上找…查看详情

首页

产品

万商学院

客户服务

会员中心

当前站点

h

选择站点

全国站成都

一 客户顾问-张三

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

    电话咨询

    在线咨询