学习
实践
活动
专区
工具
TVP
写文章

IM即时通讯实现原理

即时通讯(Instant Messenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。 其次,根据用户A存储在IM服务器上的好友列表 (Buddy List),服务器将用户A在线的相关信息发送到也同时在线的即时通讯好友的PC机,这些信息包括在线状态、IP地址、 IM客户端使用的TCP端口( Port)号等,即时通讯好友PC机上的即时通讯软件收到此信息后将在PC桌面上弹出一个小窗口予以提示。 随着用户需求和技术环境的发展,目前主流的即时通讯系统倾向于在即时通讯客户端之间、即时通讯客户端和即时通讯服务器之间都采用TCP协议 。 随着互连网变得高度发达,即时通讯也变得远不止聊天这么简单,自 1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现

5.6K81
  • 广告
    关闭

    移动开发平台即将公测上线

    移动开发平台帮您解决以下后顾之忧,修个Bug发版本时间太长、应用测试覆盖不全机型、业务增长缺少各种数据...

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    IM即时通讯实现原理

    即时通讯(Instant Messenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。 其次,根据用户A存储在IM服务器上的好友列表 (Buddy List),服务器将用户A在线的相关信息发送到也同时在线的即时通讯好友的PC机,这些信息包括在线状态、IP地址、 IM客户端使用的TCP端口( 第三步,即时通讯服务器把用户A存储在服务器上的好友列 表及相关信息回送到他的PC机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的PC机上的IM客户端收到 后将显示这些好友列表及其在线状态 在商用即时通讯系统中,如果用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢, IM服务器还提供消息中转服务,即用户A和用户B的即时消息全部先发送到IM服务器,再由服务器转发给对方 随着用户需求和技术环境的发展,目前主流的即时通讯系统倾向于在即时通讯客户端之间、即时通讯客户端和即时通讯服务器之间都采用TCP协议 。

    53720

    SpringBoot集成开源IM框架MobileIMSDK,实现即时通讯IM聊天功能

    MobileIMSDK  是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、标准Java this.setServerMessageQoSEventListener(newMessageQoSEventS2CListnerImpl());     } } 3.4 服务端启动类 温馨小提示:这里由于编将服务端和客户端集成在同一个项目中 服务端: 控制台日志如下: 2)sendMsg接口: 给指定用户发送消息:这里由于只有一个客户端,上一步登录了一个admin账号,因此编给admin账号(也就是自己) 发送消息 控制台日志如下: :TCP版、UDP版 客户端SDK API文档(Java):TCP版、UDP版 客户端SDK API文档(H5):点此进入 服务端SDK API文档 另外:作者给出了通过Java GUI编程实现的一个demo 手把手教你撸一个Andriod版IM》 《跟着源码学IM(三):基于Netty,从零开发一个IM服务端》 《跟着源码学IM(四):拿起键盘就是干,教你徒手开发一套分布式IM系统》 《跟着源码学IM(五)

    52111

    内容审核实践 | 即时通讯 IM 场景

    一、概述 一些用户使用即时通信 IM 产品开发实现自己的聊天业务,但对于聊天之间的消息无法很好的去管控内容是否违规。 (二)IM 配置项 登录 即时通信 IM 控制台—回调配置   回调URL配置 >> 编辑:填写回调URL后确认保存。具体回调参数及说明可访问 第三方回调简介 。 这一步需要保证的就是,即时通信IM可实现消息发送、即时通信IM控制台回调配置完成,且在发送消息时触发回调URL的请求,回调接口能够接收到请求数据。强调:回调URL接口需公网可见。 以下举例说明都是以审核IM消息内容为前提,如需审核其他内容,可见各审核文档的详细介绍。 至此,IM发送消息、IM请求回调、消息内容审核、回调应答、消息发送结果,所有步骤均已完成。

    39130

    即时通讯IM技术领域基础篇

    [TOC]即时通讯IM技术领域基础篇即时通讯IM技术领域提高篇议题准备工作(协议选型)网络传输协议选择 和 数据通信协议选择xxx项目架构架构优缺点架构改进之路IM 关键技术点 & 策略机制如何保证消息不丢 目前大部分IM架构都不采用UDP来实现.但是为啥还需要HTTP呢? IM协议选择原则一般是:易于拓展,方便覆盖各种业务逻辑,同时又比较节约流量。节约流量这一点的需求在移动端IM上尤其重要 !!! MQTT: 协议简单,流量少,但是它并不是一个专门为IM设计的协议,多使用于推送. 需要自己在业务上实现群,好友相关等等(目前公司有用MQTT实现通用IM框架).SIP: 多用于VOIP相关的模块,是一种文本协议. sip信令控制比较复杂私有协议: 自己实现协议.大部分主流IM APP

    1.2K31

    内容审核实践 | 即时通讯 IM 场景

    (二)IM 配置项 登录 即时通信 IM 控制台—回调配置   回调URL配置 >> 编辑:填写回调URL后确认保存。具体回调参数及说明可访问 第三方回调简介 。 这一步需要保证的就是,即时通信IM可实现消息发送、即时通信IM控制台回调配置完成,且在发送消息时触发回调URL的请求,回调接口能够接收到请求数据。强调:回调URL接口需公网可见。 以下举例说明都是以审核IM消息内容为前提,如需审核其他内容,可见各审核文档的详细介绍。 至此,IM发送消息、IM请求回调、消息内容审核、回调应答、消息发送结果,所有步骤均已完成。 对象存储本次推出的内容审核功能,可以帮助用户实现IM消息的审核服务,对于违规内容进行审核把控,为您的网络安全保驾护航。

    76890

    即时通讯IM技术领域提高篇

    即时通讯IM技术领域提高篇即时通讯IM技术领域基础篇接入层的服务器程序如何升级对于当前特定Access长连接接入服务而言我经历的xxx项目中的情况:Access接入层服务, tcp长连接的, 如果需要更新的话 如果服务器改变,最好能够发一条通知给app更新)如从wifi 切换到4G、处于地铁、WIFI边缘地带等,为避免造成重连风暴(因为网络不稳定,会频繁发起重连请求), 可以采用稍加延迟重连策略----服务端程序怎么扩容 ----服务器和客户端的通信协议选择常用IM协议:IM协议选择原则一般是:易于拓展,方便覆盖各种业务逻辑,同时又比较节约流量。后一点的需求在移动端IM上尤其重要? 这个时候来了读请求,就会直接从db里面读取旧数据.因此,需要严格保证针对同一个数据的操作都是串行的.由于数据库层面的读写并发,引发的数据库与缓存数据不一致的问题(本质是后发生的读请求先返回了),可能通过两个的改动解决 当IO层数超过4层之后,就会变得很慢,其实4层IO,存储的数据都是TB级别的了,除非你的数据类型都是INT等类型的。也不能说BTREE不起作用,只是说作用没那么明显了。

    1.2K81

    微信程序+php实现即时通讯聊天功能

    } } 三、微信程序socket合法域名配置 1、登录到微信开放平台https://mp.weixin.qq.com/ 2、开发=>开发管理=>开发设置,完成合法域名设置 3、到此配置已经完成了 ,接下来就是功能实现了,微信程序+PHP代码 四、效果演示和代码 1、程序端代码 程序页面代码所在路径 /pages/contact/contact.wxml <! value='{{inputVal}}' confirm-type='send' bindfocus='focus' bindblur='blur'></input> </view> </view> 2、程序页面样式代码所在路径 透明 透明 透明 黄*/ margin: 40px auto; position: relative; } 程序配置文件代码所在路径 /pages/contact/contact.json { "navigationBarTitleText":"柯作客服", "usingComponents": { } } 程序业务逻辑代码所在路径

    63050

    开源即时通讯IM框架 MobileIMSDK v6.2 发布

    可能是市面上唯一同时支持 UDP+TCP+WebSocket 三种协议的同类开源IM框架。 二、MobileIMSDK简介图片MobileIMSDK 是一套专为移动端开发的原创IM通信层框架:历经8年、久经考验;超轻量级、高度提炼,lib包50KB以内;精心封装,一套API同时支持UDP、TCP 、WebSocket三种协议(可能是全网唯一开源的);客户端支持 iOS、Android、标准Java、H5、程序(开发中..) SDK开发人员,从而解偶即时通讯应用开发的复杂性。 客户端SDK:用于开发iOS版即时通讯客户端,支持iOS 8.0及以上,查看API文档;Java客户端SDK:用于开发跨平台的PC端即时通讯客户端,支持Java 1.6及以上,查看API文档;H5客户端

    37930

    开源即时通讯IM框架 MobileIMSDK v6.3 发布

    可能是市面上唯一同时支持 UDP+TCP+WebSocket 三种协议的同类开源IM框架。 二、MobileIMSDK简介图片MobileIMSDK 是一套专为移动端开发的原创IM通信层框架:历经8年、久经考验;超轻量级、高度提炼,lib包50KB以内;精心封装,一套API同时支持UDP、TCP 、WebSocket三种协议(可能是全网唯一开源的);客户端支持 iOS、Android、标准Java、H5、程序(开发中..) SDK开发人员,从而解偶即时通讯应用开发的复杂性。 客户端SDK:用于开发iOS版即时通讯客户端,支持iOS 8.0及以上,查看API文档;Java客户端SDK:用于开发跨平台的PC端即时通讯客户端,支持Java 1.6及以上,查看API文档;H5客户端

    15130

    Android即时通讯设计——腾讯IM接入和WebSocket接入

    一、前言 之前项目的群聊是用数据库直接操作的,体验很差,消息很难即时反馈,所以最后考虑到了使用腾讯的IM完成群聊的接入,不过中途还是有点坎坷的,接入完成之后发现体验版一个群聊只有20人,当时看到体验版支持 现在一个群聊只能20用户,忍不了了,所以暂时找到了WebSocket作为临时的解决方案(等有钱了再换),同时支持50个用户在线聊天,也算还行,勉强够用,下面就介绍两种实现方案的接入,正文即将开始~~ 二、腾讯IM 接入 腾讯云IM的官网,这里的接入将其中群聊相关的api抽取出来,更多请看文档(如果有时间的话,完全可以实现一个类似QQ的简单聊天平台) https://cloud.tencent.com/document { Log.e("im","发送成功,内容为:${message?. 即时通讯的设计收获满满,get到一个新的知识点也算还行(主要是贫穷限制的),后期可以考虑全部换成腾讯的IM,毕竟自己实现的只是小规模测试和商业产品还是有很大的区别。

    35620

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 即时通信 IM

      即时通信 IM

      即时通信 IM(Instant Messaging)基于 QQ 底层 IM 能力开发,仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富媒体消息收发,全面满足通信需要。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券