当前位置: 首页 > news >正文

转前端了!!

大家好,我是冰河~~

没错,为了更好的设计和开发分布式IM即时通讯系统,也为了让大家能够直观的体验到分布式IM即时通讯系统的功能,冰河开始转战前端了。也就是说,整个项目从需求立项到产品设计,从架构设计到整体研发,从后端开发到前端实现,从功能测试到全链路压测,从性能调优到上线部署运维,咱统统都包了。

这也是一个可以真正写到简历的生产级项目,同样,其简化版本也可以拿来做毕业设计,让你在众多的CRUD项目中脱颖而出。

点击【查看详情】了解更多关于分布式IM即时通讯系统的架构设计与落地实现方案。

经过一段时间的研发和打磨,分布式IM即时通讯系统已全面进入前端UI设计与研发阶段,冰河正带着大家从产品原型设计开始入手,到编码实现,再到测试验证,通过设计和开发前端页面,可以让大家更直观的感受到单聊和群聊消息在整个分布式IM即时通讯系统中的流程过程。

一、技术选型

为了能够让大家更加清晰的了解到在分布式IM即时通讯系统中学到哪些技术,这里,我们回顾下设计和研发分布式IM即时通讯系统时,我们主要使用的技术栈和中间件,整体如下所示。

  • 开发框架:SpringBoot、SpringCloud、SpringCloud Alibaba、Dubbo。
  • 缓存:Redis分布式缓存+Guava本地缓存。
  • 数据库:MySQL、TiDB、HBase。
  • 流量网关:OpenResty+Lua。
  • 业务网关:SpringCloud Gateway + Sentinel(后续替换成自研网关)。
  • 持久层框架:MyBatis、Mybatis-Plus。
  • 服务配置、服务注册与发现:Nacos。
  • 消息中间件:RocketMQ。
  • 网络通信:Netty。
  • 文件存储:Minio。
  • 日志可视化治理:ELK。
  • 容器化管理:Swarm、Portainer。
  • 监控:Prometheus、Grafana。
  • 前端:Vue。
  • 单元测试:Junit。
  • 基准测试:JMH。
  • 压力测试:JMeter。

注意:业务网关后续会计划替换成星球的自研网关,这个网关的专栏和视频教程即将给大家安排,值得一提的是,这个网关项目是一个能够应对真实超高并发场景的生产级项目,经实际对比压测,其性能甚至比某些成熟的开源项目还要高,关于网关项目暂时就跟大家透漏这么多,我们拭目以待,哈哈。

通过上述的技术选型,我们可以看到,在分布式IM即时通讯系统中,开发前端页面主要使用的是Vue,那我们目前开发的前端页面长啥样呢?

二、原型展示

这里,我们就以好友模块为例来给大家简单展示下目前冰河画的原型设计草稿,像群组、单聊、群聊等等模块的设计和实现,大家可以到星球通过 专栏+视频+小册+源码+答疑 的方式进行学习,这里不再赘述。

(1)好友主体框架原型草稿

在这里插入图片描述

(2)添加好友原型草稿

在这里插入图片描述

(3)查看好友原型草稿

在这里插入图片描述

(4)快捷菜单原型草稿

在这里插入图片描述

三、研发效果

这里,同样以好友模块为例来给大家简单展示下目前冰河实现的前端效果,像群组、单聊、群聊等等模块的设计和实现效果,大家同样可以到星球通过 专栏+视频+小册+源码+答疑 的方式进行学习,这里不再赘述。

(1)好友主体框架实现效果

在这里插入图片描述

(2)添加好友实现效果

在这里插入图片描述

(3)查看好友实现效果

在这里插入图片描述

(4)快捷菜单实现效果

在这里插入图片描述

四、源码展示

分布式IM即时通讯系统主要是基于VUE实现的前端页面,前端工程的整体结构如下图所示。

在这里插入图片描述

这里只给出了整体的代码结构,完整的源码工程,大家可以到星球查看置顶公告获取。

五、写在最后

这些真实场景的项目设计与落地实现,在 冰河技术知识星球 除了分布式IM即时通讯系统外,还有其他5个项目,这些项目的需求、方案、架构、落地等均来自互联网真实业务场景,让你真正学到互联网大厂的业务与技术落地方案,并将其有效转化为自己的知识储备。

值得一提的是:冰河自研的比某些开源网关项目性能更优的生产级网关项目即将启动,你还在等啥?不少小伙伴经过星球硬核技术和项目的历练,早已成功跳槽加薪,实现薪资翻倍,而你,还在原地踏步,抱怨大环境不好。2024年抛弃焦虑和抱怨,我们一起塌下心来沉淀硬核技术和项目,让自己的薪资更上一层楼,

好了,今天就到这儿吧,我是冰河,我们下期见~~

相关文章:

转前端了!!

大家好,我是冰河~~ 没错,为了更好的设计和开发分布式IM即时通讯系统,也为了让大家能够直观的体验到分布式IM即时通讯系统的功能,冰河开始转战前端了。也就是说,整个项目从需求立项到产品设计,从架构设计到…...

RESTful API如何使用它构建 web 应用程序。

链接:华为机考原题 RESTful API(Representational State Transfer)是一种基于网络的软件架构风格,用于设计和访问网络资源。它是一种轻量级、灵活、可扩展的架构,常用于构建Web应用程序和服务。 使用RESTful API构建Web应用程序的步骤如下&…...

现在学Oracle是49年入国军么?

今天周末,不聊技术,聊聊大家说的最多的一个话题 先说明一下,防止挨喷😆 本人并不是职业dba,对数据库就是爱好,偶尔兼职,以下仅个人观点分析,如有不同观点请轻喷,哈哈&…...

【回溯】组合问题||

给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 示例 1: 输入: candidates [10,1,2,7,6,…...

【c语言】字符函数和字符串函数(下)

前言 书接上回 【c语言】字符函数和字符串函数(上) 上一篇讲解的strcpy、strcat、strcmp函数的字符串长度是不受限制的 而本篇strncpy、strncat、strcnmp函数的字符串长度是受限制的 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,…...

基于Java的艺培管理解决方案

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…...

Python算法题集_实现 Trie [前缀树]

Python算法题集_实现 Trie [前缀树] 题208:实现 Trie (前缀树)1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【定义数据类默认字典】2) 改进版一【初始化字典无额外类】3) 改进版二【字典保存结尾信息无额外类】 4. 最优算法5. 相关…...

pytorch简单新型模型测试参数

import torch from torch.nn import Conv2d,MaxPool2d,Sequential,Flatten,Linear import torchvision import torch.optim.optimizer from torch.utils.data import DataLoader,dataset from torch import nn import torch.optim.optimizer# 建模 model nn.Linear(2,1)#损失 …...

Unity中URP下实现水体(水面高光)

文章目录 前言一、实现高光反射原理1、原理:2、公式: 二、实现1、定义 _SpecularColor 作为高光反射的颜色2、定义 _SpecularIntensity 作为反射系数,控制高光反射的强度3、定义 _Smoothness 作为高光指数,用于模型高光范围4、模拟…...

26.HarmonyOS App(JAVA)列表对话框

列表对话框的单选模式: //单选模式 // listDialog.setSingleSelectItems(new String[]{"第1个选项","第2个选项"},1);//单选 // listDialog.setOnSingleSelectListener(new IDialog.ClickedListener() { // Override …...

五种主流数据库:常用字符函数

SQL 字符函数用于字符数据的处理,例如字符串的拼接、大小写转换、子串的查找和替换等。 本文比较五种主流数据库常用数值函数的实现和差异,包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。 字符函数函数功能MySQLOracleSQL ServerPostgreSQ…...

软考笔记--企业资源规划和实施

企业资源是指企业业务活动和战略运营的事物,包括人、财和物,也包括信息资源,同时也包括企业的内部和外部资源。企业资源可以归纳为物流,资金流和信息流。企业资源规划(ERP)是只建立在信息技术基础上&#x…...

React歌词滚动效果(跟随音乐播放时间滚动)

首先给audio绑定更新时间事件 const updateTime e > {console.log(e.target.currentTime)setCurrentTime(e.target.currentTime);};<audiosrc{currentSong.url}ref{audio}onCanPlay{ready}onEnded{end}onTimeUpdate{updateTime}></audio>当歌曲播放时间改变的时…...

java面试题之mybatis篇

什么是ORM&#xff1f; ORM&#xff08;Object/Relational Mapping&#xff09;即对象关系映射&#xff0c;是一种数据持久化技术。它在对象模型和关系型数据库直接建立起对应关系&#xff0c;并且提供一种机制&#xff0c;通过JavaBean对象去操作数据库表的数据。 MyBatis通过…...

Java的编程之旅19——使用idea对面相对象编程项目的创建

在介绍面向对象编程之前先说一下我们在idea中如何创建项目文件 使用快捷键CtrlshiftaltS新建一个模块&#xff0c;点击“”&#xff0c;再点New Module 点击Next 我这里给Module起名叫OOP,就是面向对象编程的英文缩写&#xff0c;再点击下面的Finish 点Apply或OK均可 右键src…...

docker build基本命令

背景 我们经常会构建属于我们应用自己的镜像&#xff0c;这种情况下编写dockerfile文件不可避免&#xff0c;本文就来看一下常用的dockerfile的指令 常用的dockerfile的指令 首先我们看一下docker build的执行过程 ENV指令&#xff1a; env指令用于设置shell的环境变量&am…...

nginx高级配置详解

目录 一、网页的状态页 1、状态页的基本配置 2、搭配验证模块使用 3、结合白名单使用 二、nginx 第三方模块 1、echo模块 1.1 编译安装echo模块 1.2 配置echo模块 三、nginx变量 1、内置变量 2、自定义变量 四、自定义图标 五、自定义访问日志 1、自定义日志格式…...

小程序--分包加载

分包加载是优化小程序加载速度的一种手段。 一、为什么进行分包 小程序限制单个包体积不超过2M&#xff1b; 分包可以优化小程序页面的加载速度。 二、启用/使用分包语法subPackages subPackages&#xff1a;下载app.json文件中 root&#xff1a;分包所在的目录 pages&#x…...

R语言【base】——writeLines()

Package base version 4.2.0 Description 向连接写入文本行。 Usage writeLines(text, con stdout(), sep "\n", useBytes FALSE) Arguments 参数【text】&#xff1a;一个字符向量。 参数【con】&#xff1a;一个 connection 对象 或 一个字符串。 参数【se…...

微信小程序-人脸检测

微信小程序的人脸检测功能&#xff0c;配合蓝牙&#xff0c;配合ESP32 可以实现一些有趣的玩具 本文先只说微信小程序的人脸检测功能 1、人脸检测使用了摄像头&#xff0c;就必须在用户隐私权限里面声明。 修改用户隐私声明后&#xff0c;还需要等待审核&#xff0c;大概一天 …...

3大技术创新:重新定义Windows Android生态的工具体验

3大技术创新&#xff1a;重新定义Windows Android生态的工具体验 【免费下载链接】wsa-toolbox A Windows 11 application to easily install and use the Windows Subsystem For Android™ package on your computer. 项目地址: https://gitcode.com/gh_mirrors/ws/wsa-tool…...

基于Azure AI Search与OpenAI构建企业级智能问答系统实战指南

1. 项目概述&#xff1a;当企业级搜索遇上生成式AI 如果你正在为如何让公司内部的知识库、产品文档或客服系统变得更“聪明”而头疼&#xff0c;那么你很可能已经听说过或将接触到这个项目&#xff1a; Azure-Samples/azure-search-openai-demo 。这不仅仅是一个简单的代码示…...

别再为答辩 PPT 秃头了!PaperXie 的 AI PPT 功能,让你把时间花在更重要的地方

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 距离毕业论文答辩只剩半个月&#xff0c;你的 PPT 还停留在 “空白文档” 阶段吗&#xff1f; 我见过太多同学在这个阶段陷…...

OpenFOAM-dev后处理与数据可视化:ParaView与fieldFunctionObjects实战指南

OpenFOAM-dev后处理与数据可视化&#xff1a;ParaView与fieldFunctionObjects实战指南 【免费下载链接】OpenFOAM-dev OpenFOAM Foundation development repository 项目地址: https://gitcode.com/gh_mirrors/op/OpenFOAM-dev OpenFOAM-dev作为开源CFD领域的核心工具&a…...

Qt Creator装完想清理?用对MaintenanceTool一键卸载不残留(附Linux权限问题解决)

Qt Creator彻底卸载指南&#xff1a;MaintenanceTool高阶使用与Linux权限问题全解析 Qt作为跨平台开发框架的标杆&#xff0c;其安装包体积日益庞大&#xff0c;从基础组件到附加工具动辄占用数十GB空间。当开发者需要切换版本、释放磁盘或解决环境冲突时&#xff0c;如何实现零…...

3.C语言笔记:指针数组、函数

1.指针数组有若干相同类型的指针变量构成的数组。数据类型 * 数组名[大小] 指针数组&#xff1a;int * p[3];数组指针&#xff1a;int (*p)[4] a;int a 10,b 20, c 20; int * p[3]; p[0] &a; p[1] &b; p[2] &c;printf("a-b-c:%d %d %d\n",…...

17 LCD1602模块——显示屏

一、51单片机模块二、LCD1602模块三、模块间的连接单片机P2端口&#xff1a;P2_5~P2_7单片机P0端口&#xff1a;P0_0~P0_7四、LCD1602芯片1、参数和引脚这里只需要了解单片机的引脚功能&#xff0c;也可以大致看一眼&#xff0c;后面在编码显示功能的时候&#xff0c;也会做详细…...

Raycast扩展vscode-control:用全局启动器遥控VS Code提升开发效率

1. 项目概述&#xff1a;一个为Raycast打造的VS Code遥控器 如果你和我一样&#xff0c;每天大部分时间都泡在代码编辑器里&#xff0c;那么你一定对频繁在编辑器、终端、浏览器和启动器之间切换感到厌烦。尤其是当你需要快速执行一个格式化操作、运行一个NPM脚本&#xff0c;…...

基于硬件虚拟化的AI智能体安全隔离方案Clawcage设计与实现

1. 项目概述&#xff1a;为AI智能体打造一个坚不可摧的“笼子”如果你最近在尝试运行一些本地的AI智能体&#xff0c;比如Claude Desktop、Cursor的Agent模式&#xff0c;或者各种开源的AI助手工具&#xff0c;心里可能总会有点打鼓。这些工具功能强大&#xff0c;但它们背后运…...

死锁四大必要条件解析

好的&#xff0c;针对“死锁考点与高频面试题”&#xff0c;我将直接进行核心内容解构与推演&#xff0c;并生成符合规范的答案。死锁是多线程并发编程中的核心难点与高频考点&#xff0c;其核心围绕定义、条件、场景、检测、预防与避免展开。一、 死锁核心定义与必要条件死锁是…...