im即时通讯开发如何理解定位技术

Posted wecloud1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了im即时通讯开发如何理解定位技术相关的知识,希望对你有一定的参考价值。

在开发IM、推送这类应用系统时,尤其在移动网络下,各种弱网问题,让人非常痛苦。

典型的弱网问题,比如:

    1)频繁掉线;
    2)丢包严重;
    3)网络抖动;
    4)网络延迟;
    ........
那么,针对以上现象,怎么才能有底气的跟老板、客户、产品经理地解释以下问题?

    1)导致这些现象的根本原因到底是什么?
    2)怎么跟老板解释,要搞定在高铁上用好音视频聊天功能很困难?
    3)怎么跟客户解释P2P在3G、4G甚至5G网络下的成功率问题?
    4)怎么向客户说明,商场或人多场合下,明明信号很好,但你的APP确用不了?

网上能找到的通信技术资料都太过专业或太不专业,要么都是搞网络工程方面的内行人编写的(内容专业但很枯燥难懂),要么就是外行的IT开发人员写的(很少见,且价值不大,因为不够专业,所以内容并不准确,参考价值很有限)。

既能让外行的普通程序员看懂,还能准确地讲明白通信技术知识,这样的资料简直比找金矿还难。因为普通程序员能接触到的网络编程、网络通信方面的资料多针对数据通信的逻辑层(比如:tcpip、socket等知识范畴),而通信技术涉及的是数据通信的物理层(交换机、路由器、天线、网络制式等),某种意义上来说,这是完全不同的技术方向。

好消息是,经过长时间的资料搜集,终于有了本系列文章,希望能给你带来帮助。

对于IM开发者来说,用户的地理位置、附近的人这类功能,都需要用到手机的定位技术。不过,当用户、产品经理、测试人员使用这类功能,有某些情况下定位不出结果或者定位不准时,这锅是要程序员来背吗?显然不是。

那么,定位技术到底是怎么实现的?技术原理怎样?有哪些局限性?貌似我们平时也没有做更多了解,既然这样,那就跟着本文来一窥究竟吧。

定位技术,应用广泛

今天我们所处的移动互联网时代,手机成了每个人的生活标配。这些手机里,安装了形形色色的APP,提供了各种服务,彻底改变了我们的生活。

这些服务里面,就包括我们今天的主角——定位。

每一个人,每一件物品,在这个地球上都有一个空间位置信息,这就是定位。它非常重要,我们靠它来找到这个人或这件物。

自从有人类文明开始,地图就被发明出来,用于标示位置信息。但是,因为技术手段的落后,人们只能通过参照物来“佛系”定位。

那么,大家平时使用手机定位服务的时候,有没有想过这些问题:

    1)手机到底如何实现定位的?工作原理是什么?
    2)大家都知道卫星定位,那么,是不是只有卫星这一种定位方式?
    3)为什么有时候我们没有打开手机的卫星定位开关,仍然能够进行定位?
    4)如果我们在室内,没有卫星信号覆盖,是不是就彻底不能定位了?
    5)…

卫星定位技术

定位,我们通常按使用场景,分为室内定位和室外定位。

我们先来说说用得最多的室外定位。目前最主流的室外定位方式,刚才我们已经提到了,就是卫星定位。即时通讯聊天软件app开发可以加蔚可云咨询

卫星定位:是利用人造地球卫星进行点位测量的技术,也是目前使用最为广泛、最受用户欢迎的定位技术。它的特点非常突出,就是精度高、速度快、使用成本低。

但是,目前世界上只有少数国家,具备建设和维护卫星定位系统的能力。

大家所熟知的,包括:美国的GPS,中国的北斗(BDS)、欧洲的伽利略(Galileo)、俄罗斯的格洛纳斯(GLONASS)。此外,还有日本的准天顶系统(QZSS)和印度的IRNSS。

我们就拿使用最为广泛的美国GPS系统来说吧。GPS,英文全名是Global Positioning System,全球定位系统。

它起始于1958年美国军方的一个项目,1964年投入使用,1994年彻底布设完成。

GPS系统的主要建设目的,是为陆海空三大领域提供实时、全天候和全球性的导航服务,并用于情报搜集、核爆监测和应急通讯等一些军事目的。

该系统由24颗卫星构成,其中21颗为工作卫星,还有3颗是在轨备用卫星。它们共同组成了GPS卫星星座。

基站定位技术

好了,说完了卫星定位,再来看看地面定位。说到地面定位,大家首先想到了什么?哈哈,是不是雷达?

确实,雷达作为一项搜索定位技术,广泛应用于军事和民用领域。但是,毕竟普通手机数量非常庞大,加之生活场所障碍物非常复杂,不管从技术角度,还是成本角度,都不适合采用雷达进行定位。

那我们采用什么方式呢?其实可以用的方法很多,最常用的,是基站定位,也就是常说的LBS,Location Based Service(基于位置服务)。

基站定位的原理和雷达有相似之处。雷达定位大家都知道,就是发射雷达波,根据目标的反射,进行空间位置测算。

基站定位的话,基站就相当于是一个“雷达”。

通常,在城市中,一部手机会在多个基站的信号覆盖之下。手机会对不同基站的下行导频信号进行“测量”,得到各个基站的信号TOA(到达时刻)或TDOA(到达时间差)。根据这个测量结果,结合基站的坐标,就能够计算出手机的坐标值。

以上是关于im即时通讯开发如何理解定位技术的主要内容,如果未能解决你的问题,请参考以下文章

IM即时通讯开发千万级并发长连接网关技术

Android 即时通讯开发小结

Android 即时通讯开发小结

im即时通讯开发:如何选择数据传输格式

im即时通讯开发新手入门:零基础理解大型分布式架构

如何理解即时通讯开发移动网络的“弱”和“慢”