交友源码中即时通讯怎么工作的?

简介: 即时通讯是什么?即时通讯(Instant Messaging,简称IM)是一个实时通讯系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流

即时通讯是什么?

即时通讯(Instant Messaging,简称IM)是一个实时通讯系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流

基本架构介绍
image.png
客户端:作为与服务端进行消息收发通信的终端

接入层:也叫网关层,为客户端收发消息提供入口

逻辑层:负责IM系统各功能的核心逻辑实现

存储层:负责IM系统相关数据的持久化存储,包括消息内容、账号信息、社交关系链等

第三方服务:保证APP在未打开或后台运行时也能收到消息通知(这主要是第3方消息推送服务

即时通讯技术如何实现

直播室源码即时通讯方式有四种,短轮询、长轮询、SSE、websocket

短轮询
每隔一段时间就发送一个请求到服务器,服务器返回最新数据然后客户端根据获得的数据来更新界面,间接完成即时通信。缺点是服务器的压力较大,浪费带宽流量,通常情况下数据是没有发生改变的

长轮询
服务器通过查看客户端的请求的数据,如果请求发生变化,会理解响应返回,如果没有变化,会一直保持这个定期检查状态。在客户端连接中断后,会再次发送请求,这大大减少了客户端请求服务器的次数。但会造成长时间的连接资源消耗

SSE
为了解决浏览器只能单向传输数据到服务端的问题,SSE技术提供的是从服务器单向推送数据给浏览器的功能,完成播放端与用户端的双向通信

Websocket
它提供了浏览器与服务器之间原生的双工跨域通信,通过浏览器和服务器之间建立的websocket连接,在同一时刻能够实现客户端到服务器和服务器到客户端的数据发送

即时通讯对于搭建一对一交友源码做出来重要贡献,也可以说是一对一交友源码的重要组成部分,因此在开发交友源码时,即时通讯技术是必然要开发的部分,也是起到关键作用的部分
image.png

相关文章
|
自然语言处理 算法 Java
地址描述转换为坐标点不使用API,有什么转换的方法?
地址描述转换为坐标点不使用API,有什么转换的方法?
803 64
|
9月前
|
自然语言处理 JavaScript API
【HarmonyOS Next之旅】HarmonyOS开发基础知识(一)
本文主要介绍了HarmonyOS应用开发中的基础知识、配置文件结构及其说明。内容涵盖用户应用程序的基本概念,包括应用形态(安装型与元服务)、包结构(APP Pack与HAP)、核心组件(Ability)以及相关文件(库文件、资源文件、配置文件等)。重点解析了`config.json`配置文件的组成与内部结构,如`app`(全局配置)、`deviceConfig`(设备配置)、`module`(模块配置)三大核心部分,详细说明了各属性的功能与约束。此外,还提供了具体示例,帮助开发者更好地理解和使用HarmonyOS的配置体系。适用于JS/ArkTS开发环境。
574 0
|
存储 自然语言处理 开发工具
milvus向量库的工具类(添加分区、删除分区、删除记录)等
【5月更文挑战第18天】milvus向量库的工具类(添加分区、删除分区、删除记录)等
473 3
|
机器学习/深度学习 人工智能 并行计算
Unsloth:学生党福音!开源神器让大模型训练提速10倍:单GPU跑Llama3,5小时变30分钟
Unsloth 是一款开源的大语言模型微调工具,支持 Llama-3、Mistral、Phi-4 等主流 LLM,通过优化计算步骤和手写 GPU 内核,显著提升训练速度并减少内存使用。
1836 3
Unsloth:学生党福音!开源神器让大模型训练提速10倍:单GPU跑Llama3,5小时变30分钟
|
JSON API 开发者
淘宝商品销量数据接口:获取与利用全攻略
淘宝商品销量数据接口让开发者获取平台上商品的销量信息。首先,需在开放平台注册并创建应用;随后获取API密钥(appkey与appsecret),用于身份验证。参考官方文档了解接口详情,通过HTTP请求调用接口并设置参数如商品ID。接口返回JSON格式数据,需用编程语言解析提取销量数据。示例代码展示了如何使用Python和requests库调用接口及打印结果。使用时应遵守规定,避免违规行为,并关注接口更新。若无开发能力,可选用第三方服务但需谨慎评估。
1130 0
解决办法:undefined reference to symbol 'shm_open@@GLIBC_2.2.5'
解决办法:undefined reference to symbol 'shm_open@@GLIBC_2.2.5'
669 0
|
数据可视化 IDE Linux
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
3021 3
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
528 1
|
存储 监控 安全
医院安全(不良)事件管理系统源代码(B/S架构):事件全程监管 质量持续改进
系统概述 医院安全(不良)事件管理,让上报人更加准确、快捷地将不良事件内容报告给相关管理人员;使管理者系统地收集资料,并通过深入分析与学习,寻找管理中的薄弱环节,完善系统结构和运作。该系统是有效预防不良事件再次发生的一种管理工具。 二、技术架构: PHP+ vue2+element+ laravel8+ mysql5.7+ vscode 三、不良事件类型 护理相关事件:(跌倒事件,坠床事件,压疮事件,管路滑脱事件,给药差错事件,烧伤/烫伤事件,输液反应事件,病人自杀事件,病人走失事件,消毒供应事件,其他事件) 医疗相关事件:(手术事件,麻醉事件,诊疗相关事件,医德医风相关,病案管理事件
313 1
医院安全(不良)事件管理系统源代码(B/S架构):事件全程监管 质量持续改进
|
SQL Shell 数据库
无人参与安装最新版本SQL Server Management Studio (SSMS)
通过power shell完成SSMS的自动安装,给大家争取打水的时间,离开位置走走,活动活动筋骨。
652 0