00:01
说起I'M,大家应该都或多或少了解过一些,一般被熟知是在一些聊天场景里应用的比较多,而一般情况下,我们常接触的业务中大多是做一些接口的查询提交之类的操作,用正常的Ajax请求就足以满足需求,比较难接触到I'M这种方案。但如果涉及到一些需要频繁更新数据的业务场景,使用常规接口查询难免会给服务端造成比较大的性能开销,并且数据更新的延迟也会很大。尝试使用I'M则可以让我们在业务开发中更好的应对频繁的数据更新场景,以提升用户体验和业务价值。本文将从一处游戏场景下的实时信息更新需求切入,探讨下在类似这种高并发、低延迟的业务需求中,如何使用I'M方案来解决频繁的数据更新问题,也顺便介绍一下web socket的基本运作流程的。在谈论I'M之前,对于数据的实时更。
01:01
新除了使用I'M,还有哪些可选用的方案?可能包括但不限于接口轮旋接口长轮旋SSEH77、plash出4PO web so. 对于实现即时通信而言,Web socket可以说是最佳选择。相对于传统的web端即时通信纪要,它的优点主要低延迟、双向通信、快域,支持更少的数据传输。说到底,上面提到了好几种方案其实都可以在不同程度上实现数据的实时更新,但是他们跟本次需求中使用到德I'方案有什么关系呢?或者说I'M究竟是个什么样的方案呢?下面的章节我们将先明确下I'M的概念应具体是指什么?即时通信instant messaging, 简称I'M,是一种透过网络进行实时通信的系统,允许两人或多人使用网络及时的传递文字消息、文件、语音与视频交流,通常以网站、电脑软件或移动应用程序的方式提供服务。来自百科换句话说,我们只要采用某种方式,能实现两人或多人之间可以通过网络。
02:02
直时的交换信息,就可以称之为是一种I'M方案。那么上面所提到的几种实现数据更新方式都可以用作实现I'M方案的底层实现方案。对于Web端,I'M的发展历程其实大致都囊括了上面提到的几种实现方式。这些技术经过不断优化,持续提升了用户体验,其演变过程可以大致概括为从早期的轮询技术到长轮询,在发展到现代的web socket server push的实现方式,而web socket的出现则实现了更高效、更实时的即时通信。本次要实现多人打怪兽同步信息的场景,对数据更新的实时性要求非常高,所以本次需求所依赖的I'M方案就是基于更稳定的web socket实现的。Web socket虽然是一种新的协议,但同HTTP协议一样,Web socket协议也是运行在TTP协议之上的,与HTTP协议同属于应用层网络数据传输协议。那Web sock和HTTP究竟有哪些不一样呢?HTTP属于短连接。
03:02
发起一次请求都需要建立一次连接,请求结束后立即关闭连接。HTTP是一种无状态协议,每个请求都是独立的,服务器不会保存客户端的状态信息。不同于Http web socket协议中,客户端和服务端只需要完成一次握手,两者之间就可以建立持久性的连接,并可以进行双向的数据传输。本次需求也是首次在日常活动需求中使用I'M方案,整体看起来也没有预期的那么复杂,总的来讲,相对于之前常用的接口轮询的方式会减少很多对服务端的压力。同时I'M方案更新数据的及时性也大幅提升了用户体验。项目稳定运行一年多,也验证了I'M方案在日常需求中的可行性。
我来说两句