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

828华为云征文|华为云Flexus云服务器X实例部署 即时通讯IM聊天交友软件——高性能服务器实现120W并发连接

营运版的即时通讯IM聊天交友系统:特点可发红包,可添加多条链接到用户网站和应用,安卓+苹果APP+PC端+H5四合一

后端开发语言:PHP,
前端开发语言:uniapp混合开发。
集安卓+苹果APP+PC端+H5四合一APP源码,但本源码服务不提供ios签名、软著申请、上架服务等。
socket推送:GateWayWorker(支持分布式部署,高并发,抗压能力强,未采用第三方付费推送服务)
数据库:mysql
开发工具:hbuiderX,phpstorm
服务器操作系统: Linux Centos 7.x(不支持unbutun)
软件环境: php 5.6 +Apache2.4(或nginx)+MySQL5.6 (推荐使用宝塔)
第三方插件:FFmpeg
无需用到任何第三方付费api

搭配华为云FlexusX使用,性能高达:
同时在线人数受限于服务器内存,一般24G内存服务器可以支持大概120W并发连接。
用户活跃度受限于服务器cpu处理能力,一台24核服务器可以达到45W每秒的吞吐量

即时通讯IM聊天交友软件功能介绍:

一、有群聊、私聊、朋友圈、可以发送文字、语音、视频、图片、表情、红包,转账等。消息可以撤回
二、群组可以设置管理员、可以禁言、踢人,可设置是否可查看用户信息,可@用户、可发群公告等
三、支持扫码入群,可设置好友备注、群名片、消息置顶、消息免打扰、可以邀请好友直接进群等
四、拥有代理功能,支持关键词屏蔽,vip功能,签到功能,支持消息离线推送(ios无需上架,但是签名需支持push,通过APN推送,Android需要上应用商店,否则无法实现离线推送,下单一定要了解好离线消息相关流程)
五、APP端历史聊天记录、图片以及前端程序缓存在本地,页面秒开,支持云端同步聊天记录,断网状态页面之间也可以流畅切换

1、访问华为云官网,注册一个华为云账号

在这里插入图片描述

2、选择华为云Flexus云服务器X实例

https://www.huaweicloud.com/product/flexus-x.html
在这里插入图片描述

3、选择配置:

计费模式:根据需求选择包年/包月或按需计费模式。
区域与可用区:选择离您或您的用户群体较近的区域和可用区,以降低延迟并提高访问速度。
实例规格:根据业务负载和应用场景,选择合适的实例规格。华为云提供了多个固定规格套餐供选择,同时支持自定义规格,以满足不同需求。
系统镜像:从公共镜像中选择所需的操作系统镜像,或上传自定义镜像进行安装。
存储配置:根据需求选择合适的存储类型和大小,如SSD或SAS存储等。
网络与安全组:配置私有IP地址、公网IP地址(如需)以及安全组规则,确保云服务器的网络安全。

在这里插入图片描述

4、确认配置与购买:

在确认无误后,点击“立即购买”或“下一步”按钮,进入订单确认页面。
在订单确认页面中,仔细核对所选配置和价格等信息,确保无误后点击“提交订单”按钮。
根据提示完成支付流程,支付成功后即可等待云服务器的创建和交付。

5、远程连接SSH:

使用CloudShell、VNC、Xshell等工具远程连接到云服务器,进行后续的配置和操作。
建议通过公私钥对的方式连接,以提高安全性。

在这里插入图片描述

6、IM即时通讯系统环境配置要求

服务器操作系统: Linux Centos 7.x(不支持unbutun)

软件环境: php 5.6 +Apache2.4(或nginx)+MySQL5.6 (推荐使用宝塔)

开始安装环境

在这里插入图片描述
在这里插入图片描述

7、安装第三方插件:FFmpeg

ffmpeg安装(处理上传视频压缩剪辑出第一帧作为封面)
会调用系统system 执行命令行进行处理视频 部分源码扫描软件会认为是后门 可放心使用

./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --enable-ffplay
sudo make -j 4
sudo make install

编译成功,那么将会在安装路径/user/local/ffmpeg下出现如下子目录
在这里插入图片描述

修改mongodb 端口为2702(端口任意)
开放2702 9393 1239端口

php7.3安装扩展fileinfo redis Swoole4 mongodb 删除全部禁用函数

app/im/common/controller/ActionBegin1.php 修改GatwayWork服务地址
config/database.php 修改数据库信息
socket/app/im/common/controller/Main.php 修改数据库信息
socket/app/im/common/controller/Config.php 修改IP

8、导入sql 文件

安装 MongoDB
在这里插入图片描述

需要 navicat 创建数据库 im 并导入合集
或者
把MongoDB文件夹上传到 /www/wwwroot
解压 设置权限777
进入目录/www/wwwroot/mongodb/im点宝塔上的终端
输入
mongorestore -d im /www/wwwroot/mongodb/im
然后软件商店mongodb端口改2702 保存 重启

上传后端到服务器

源码上传到/www/wwwroot/这里解压
网站目录:/www/wwwroot/im
运行目录/public
TP伪静态,防跨域关掉

location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php/$1 last;
break;
}
}location /h5{if (!-e $request_filename) {rewrite ^/(.*) /h5/index.html last;break;}}

安装yasm
根目录/opt/yasm-1.3.0
解压 设置权限777
点宝塔上的终端
输入

./configure make && make install
./configure && make && make install

前端H5 app 使用hbuiderx 进行打包
打包后的h5 可以上传到public/h5 文件夹里
在这里插入图片描述

打包后的app 可以上传到public/app 文件夹里 替换1.apk

pc 端 编译成H5 再打包exe
打包后的pc的h5和exe 可以上传到public/pc 文件夹里

在这里插入图片描述
性能参考:

同时在线人数受限于服务器内存,一般24G内存服务器可以支持大概120W并发连接。

用户活跃度受限于服务器cpu处理能力,一台24核服务器可以达到45W每秒的吞吐量
在这里插入图片描述

import store from './store/';import _get from './_get';import _action from './_action';export default {/** 验证token */checkToken(res) {if(res.err){_action.checkFail();} else {/** 设置为登陆状态 */store.commit('set',{ k:'socket_state',v:1 });/** 获取基础数据 */_get.base();}},/** 下线 */offline(res){uni.showModal({content: '你的账号在另一客户端登陆,如果不是你本人操作,请修改你的密码',success(){_action.checkFail();},});},/** 获得会话列表 */getChatList(){_get.getChatList();},/** 获得好友列表 */getFriendList(){_get.getFriendList({ up: 1});},/** 新好友提醒 */newFriend(data){_action.playVoice('/static/voice/friend.mp3');let num = store.state.new_friend_tips_num + (data.num * 1);store.commit('set',{ k:'new_friend_tips_num',v:num });_action.setStatusTips();},timeData(data){//console.log(data);},/** 接收新消息 */chatData(data){let chat_data = store.state.page_data.chat_data,msg_reader_num = 1;if(chat_data[data.list_id]){// 如果在与对方的对话界面,更新这个对话的阅读(即反馈接收状态)if(store.state.page_data.message_query_list_id == data.list_id && store.state.user_info.id != data.data.msg.user_info.uid){_action.updataNoReader(data.list_id);msg_reader_num = 0;}store.state.page_data.chat_data[data.list_id].list.push(data.data);}//console.log(data);/** 更新对话列表数据 */		for(let i = 0,j = store.state.page_data.chat_list.length;i < j;i ++){if(store.state.page_data.chat_list[i].list_id == data.list_id){let last_msg;switch(data.data.msg.type * 1){case 0:last_msg = data.data.msg.content.text;break;case 1:/** 语音 */last_msg = '[语音]';break;case 2:/** 图片 */last_msg = '[图片]';break;case 3:/** 视频 */last_msg = '[视频]';break;case 4:/** 文件 */last_msg = '[文件]';break;case 5:/** 红包 */last_msg = '[红包]';break;default:/** 未知消息类型 */last_msg = '[未知]';break;}store.state.page_data.chat_list[i].last_msg = last_msg;store.state.page_data.chat_list[i].no_reader_num += msg_reader_num;store.state.page_data.chat_list[i].time = data.data.msg.time;let action_list_data = store.state.page_data.chat_list[i];store.state.page_data.chat_list.splice(i,1);store.state.page_data.chat_list.unshift(action_list_data);break;}}/** 如果不是自己的消息,震动提示 */if(store.state.user_info.id != data.data.msg.user_info.uid){uni.vibrateLong();_action.playVoice('/static/voice/chat.mp3');}},/** 接收好友朋友圈动态提示 */circleTips(data){_action.playVoice('/static/voice/circle.mp3');store.commit('set',{ k:'no_reader_circle',v:1 });_action.setStatusTips();},/** 接收朋友圈好友回复/赞通知 */cricleChatTips(data){_action.playVoice('/static/voice/circle.mp3');let num = store.state.no_reader_circle_chat_num;num ++;store.commit('set',{ k:'no_reader_circle_chat_num',v:num });_action.setStatusTips();},/** 撤回消息 */deleteChat(data){let chat_data = store.state.page_data.chat_data;if(chat_data[data.list_id] && chat_data[data.list_id].list.length){for(let i = 0,j = chat_data[data.list_id].list.length;i < j;i++ ){if(chat_data[data.list_id].list[i].msg.id == data.msg_id){store.state.page_data.chat_data[data.list_id].list.splice(i,1);break;}}}},}

ios无需上架,但是签名需支持push,通过APN推送;Android需要上应用商店,否则无法实现离线推送,下单一定要了解好离线消息相关流程。

除以上配置,未用到任何第三方付费api,无需支付高昂的运营成本!

在这里插入图片描述

华为云Flexus X卓越的性能

柔性算力:华为云Flexus云服务器X实例基于用户业务负载动态和内存峰值画像,动态推荐规格,减少算力浪费,提升资源利用率。这种柔性算力的特性使得IM应用能够在高并发、大数据量的情况下依然保持流畅的运行状态。

大模型加持:华为云Flexus云服务器X实例配备了首创的大模型加持和智能全域调度技术,通过X-Turbo加速,常见应用性能最高可达业界同规格6倍。这意味着IM应用可以更快地处理消息、提供更快的响应速度,从而提升用户体验。

综上所述,华为云Flexus X云服务器X实例在安装搭建即时通讯(IM)聊天交友应用方面带来了诸多好处。这些好处不仅提升了应用的性能和安全性,还降低了使用成本并提供了高度的灵活性。因此,选择华为云Flexus云服务器X实例作为IM应用的运行环境是一个明智的选择。

相关文章:

828华为云征文|华为云Flexus云服务器X实例部署 即时通讯IM聊天交友软件——高性能服务器实现120W并发连接

营运版的即时通讯IM聊天交友系统&#xff1a;特点可发红包&#xff0c;可添加多条链接到用户网站和应用&#xff0c;安卓苹果APPPC端H5四合一 后端开发语言&#xff1a;PHP&#xff0c; 前端开发语言&#xff1a;uniapp混合开发。 集安卓苹果APPPC端H5四合一APP源码&#xff0…...

超好用的element的el-pagination分页组件二次封装-附源码及讲解

前言&#xff1a;在很多后台管理系统开发时总会有很多分页组件的使用&#xff0c;如果我们每次都用elementui官网的el-pagination去写的话&#xff0c;调整所有分页的样式就会很麻烦&#xff0c;而且页面内容也会很累赘繁琐。 讲解一个我经常使用的二次封装el-pagination组件&…...

【AIGC】通过OpenAi Canvas修改论文(附40条论文优化指令)

目录 1、用ChatGPT优化论文大纲和逻辑2、用ChatGPT充实论文内容3、用ChatGPT寻找案例和数据4、用ChatGPT检查语法和字词错误5、如何直接使用ChatGPT4o、o1、OpenAI Canvas6、OpenAI Canvas增强了啥&#xff1f;7、编程功能增强 在刚开始撰写学术论文时&#xff0c;很多小伙伴感…...

Kubernetes Pod详解

目录 1. Pod 介绍 1.1 Pod 结构 1.2 Pod 定义 2. Pod 配置 2.1 基本配置 2.2 镜像拉取 2.3 启动命令 2.4 环境变量 2.5 端口设置 2.6 资源配额 3. Pod 生命周期 3.1 创建和终止 3.2 初始化容器 3.3 钩子函数 3.4 容器探测 3.5 重启策略 4. Pod 调度 4.1 定向调…...

Vue2电商项目(七)、订单与支付

文章目录 一、交易业务Trade1. 获取用户地址2. 获取订单信息 二、提交订单三、支付1. 获取支付信息2. 支付页面--ElementUI(1) 引入Element UI(2) 弹框支付的业务逻辑(这个逻辑其实没那么全)(3) 支付逻辑知识点小总结 四、个人中心1. 搭建二级路由2. 展示动态数据(1). 接口(2).…...

你知道U盘怎么加密吗?

1、使用Windows BitLocker&#xff1a; 适用于Windows 10/11专业版及以上版本。 插入U盘&#xff0c;右键点击U盘图标&#xff0c;选择“启用BitLocker”。 设置密码&#xff0c;并选择加密选项&#xff0c;点击“开始加密”。 2、使用Mac的Disk Utility&#xff1a; 适用…...

【软件教程OBS下载使用】一篇文章教会你如何下载安装使用OBS-Studio

OBS Studio是全新的OBS(Open Broadcaster Software)&#xff0c;是一款广泛应用的视频直播录制软件&#xff0c;跟经典版的区别就是&#xff0c;音频分路简单&#xff0c;在不出错的情况下性能优于经典版。可以说是高级版&#xff0c;目前仍然处于初期阶段&#xff0c;比起经典…...

鸿蒙next开发第一课03.ArkTs语法介绍-案例

前面已经学习了ArkTs的基本语法和DevEcoStudio的基本操作&#xff0c;接下来按照官方提示开发一个基本案例。 该案例是系统自带的demo&#xff0c;下载下来源代码后可以直接运行。 接下来我来演示如何运行demo。我在demo中加入了自己的注释。 切记&#xff1a;文件夹不能有中…...

HTML网页制作——设计系学生静态HTML网页设计作品

HTML网页制作——设计系学生静态HTML网页设计作品 网站主题为荷兰风格派&#xff0c;主要介绍荷兰风格设计的网站&#xff0c;由设计系学生亲自设计&#xff0c;独立开发网页&#xff0c;适用于学生自己的作品。 网站效果视频&#xff1a; 荷兰风格派&#xff08;设计系学生网…...

智能翻译新纪元:4款英汉互译在线工具解析

大家好&#xff0c;我是一个喜欢找各种办公软件的人&#xff0c;今天咱们来聊聊那些让我们在英汉互译世界里如鱼得水的神器——福昕翻译在线、福昕翻译大师、海鲸AI论文翻译&#xff0c;还有DeepL翻译。这些家伙&#xff0c;简直就是我们跨语言交流的超级英雄&#xff01; 1、…...

Cisco Meraki平台中国区注册

登陆下面网址注册cisco meraki中国区云平台账户 https://n4.meraki.cn/ 点击创建一个新账户 地区选择“china” 填写邮箱&#xff0c;名字&#xff0c;秘密&#xff0c;公司名称等信息&#xff0c;点击注册新账户 注册的邮箱会收到一封确认此邮箱的邮件&#xff0c;点击…...

分享国产RISC-V单片机通用

开源已经成为构建新技术生态的主流趋势。基于开源指令集 RISC-V 的软硬件生态正在飞速扩增&#xff0c;并且已经迅速扩展至个人 PC、服务器和人工智能等领域。RISC-V 的灵活性和可扩展性使其能够在应用处理器和AI加速领域迅速发展。 RAMSUN提供的RISC-V单片机&#xff0c;开源…...

java 网络知识 + 多线程问题

服务器&#xff1a; package p1007;import java.io.*; import java.net.*; import java.util.Random;public class Server {public static void main(String[] args) {int port 12345; // 服务端口try (ServerSocket serverSocket new ServerSocket(port)) {System.out.print…...

android 菜单不显示auto time zone菜单

packages\apps\Settings\res\xml\date_time_prefs.xml 有对应的xml packages\apps\Settings\src\com\android\settings\datetime\AutoTimeZonePreferenceController.java Overridepublic boolean isAvailable() {if (mIsFromSUW) {return false;}TimeZoneCapabilities time…...

51单片机的金属探测器【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块金属检测传感器继电器LED、蜂鸣器等模块构成。适用于金属探测仪、检测金属、剔除金属等相似项目。 可实现功能: 1、LCD1602实时显示是否检测到金属 2、金属检测传感器&#xff08;按键模拟&#xff09;检测是否有…...

使用Spring Security实现用户-权限-资源的精细化控制

文章目录 一、基于权限的请求控制二、加载用户权限信息三、自定义异常处理四、注册自定义异常处理器五、总结 在开发Web应用时&#xff0c;权限管理是一个不可忽视的部分。最近在项目中&#xff0c;我使用了Spring Security来实现用户、权限、资源之间的精细化控制。这里我想分…...

动态规划10:174. 地下城游戏

动态规划解题步骤&#xff1a; 1.确定状态表示&#xff1a;dp[i]是什么 2.确定状态转移方程&#xff1a;dp[i]等于什么 3.初始化&#xff1a;确保状态转移方程不越界 4.确定填表顺序&#xff1a;根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接&#xff1a;174.…...

【数据结构】链表-1

数组 数组在分配内存的时候需要先告诉系统它有多大&#xff0c;为什么呢&#xff1f;打个比方&#xff0c;我们有以一列的凳子&#xff0c;按顺序排布&#xff0c;一个位置只放一个&#xff0c;数组呢&#xff0c;是一个家庭&#xff0c;数组这个家庭呢&#xff0c;他们得挨着…...

Python进阶--正则表达式

目录 1. 基础匹配 2. 元字符匹配 1. 基础匹配 正则表达式&#xff0c;又称规则表达式&#xff08;Regular Expression&#xff09;&#xff0c;是使用单个字符串来描述、匹配某个句法规则的字符串&#xff0c;常被用来检索、替换那些符合某个模式&#xff08;规则&#xff…...

富格林:发现潜在欺诈安全交易

富格林指出&#xff0c;在全球经济不确定性加剧的背景下&#xff0c;黄金的避险优势再次吸引了投资者的关注。尤其是在今年&#xff0c;随着多种因素的变化&#xff0c;金价的走势引发了市场的广泛讨论。但事实上黄金与其他投资品类相似&#xff0c;也存在潜在的欺诈套路导致我…...

Mellanox ZTR技术解析:如何通过RTTCC实现零配置高性能RoCE网络

1. 什么是Mellanox ZTR技术&#xff1f; 第一次听说Mellanox ZTR&#xff08;Zero Touch RoCE&#xff09;技术时&#xff0c;我的反应和大多数人一样&#xff1a;"这又是什么高大上的黑科技&#xff1f;"但当我真正在金融交易系统里部署它之后&#xff0c;才发现这可…...

cobalt家谱研究者助手:家族历史与档案管理方案

cobalt家谱研究者助手&#xff1a;家族历史与档案管理方案 引言&#xff1a;家谱研究的数字时代痛点与解决方案 你是否还在为散乱的家族史料整理而困扰&#xff1f;是否经历过珍贵的口述历史随时间流逝而湮灭&#xff1f;cobalt家谱研究者助手&#xff08;家族历史与档案管理方…...

从LeetCode到ACM:迷宫最短路径的C++ BFS模板,这么写就对了

从LeetCode到ACM&#xff1a;迷宫最短路径的C BFS模板实战精解 在算法竞赛和面试刷题中&#xff0c;迷宫类问题是最经典的场景之一。无论是LeetCode上的简单矩阵遍历&#xff0c;还是ACM竞赛中复杂的路径搜索&#xff0c;广度优先搜索&#xff08;BFS&#xff09;都是解决这类问…...

ChatTTS 入门指南:从零开始构建你的第一个语音对话应用

最近在做一个需要语音交互的小项目&#xff0c;选型时发现了 ChatTTS 这个工具&#xff0c;感觉挺有意思的。它不像一些大厂的 TTS 服务那么“重”&#xff0c;更像是一个专为对话场景优化的语音合成工具。如果你是第一次接触&#xff0c;可能会觉得有点无从下手&#xff0c;比…...

Linux服务器卡死?5分钟定位hung task与soft lockup的实战技巧

Linux服务器卡死&#xff1f;5分钟定位hung task与soft lockup的实战技巧 凌晨三点&#xff0c;服务器监控突然告警——核心业务节点失去响应。作为运维工程师&#xff0c;这种场景往往意味着不眠之夜。但不同于新手的手足无措&#xff0c;经验丰富的系统管理员知道&#xff1a…...

ChatTTS合成速度优化实战:从音频流处理到并行计算

最近在项目中用到了ChatTTS进行语音合成&#xff0c;效果确实不错&#xff0c;但遇到一个很实际的问题&#xff1a;合成速度太慢&#xff0c;尤其是处理长文本时&#xff0c;等待时间让人有点抓狂。于是花了一些时间研究优化方案&#xff0c;把整个探索过程和最终落地的方案记录…...

Uniapp集成智能客服功能实战:从选型到性能优化的完整指南

在移动应用生态中&#xff0c;客服系统已从“成本中心”转变为“增长引擎”。数据显示&#xff0c;一个响应迅速、体验流畅的在线客服系统&#xff0c;能将用户咨询转化率提升30%以上&#xff0c;并显著降低用户流失率。对于使用Uniapp开发的跨平台应用而言&#xff0c;集成一套…...

使用 Java 泛型创建 CSV 到对象的转换器

本文将介绍如何使用它 Java 创建一个通用的泛型 CSV 文件到 Java 对象转换器。通过泛型&#xff0c;我们可以避免为每个需要转换的类别编写重复的代码&#xff0c;以实现代码的重用和简化。本文将提供示例代码&#xff0c;并讨论一些关于代码设计和最佳实践的建议&#xff0c;以…...

Llama-3.2V-11B-cot效果展示:‘打字机式’CoT推演过程动态演示

Llama-3.2V-11B-cot效果展示&#xff1a;‘打字机式’CoT推演过程动态演示 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B多模态大模型开发的高性能视觉推理工具。这款工具针对双卡RTX 4090环境进行了深度优化&#xff0c;特别修复了视觉权重加载的关键Bug&#…...

AI建站避坑指南:10个高频问题与风险防范全解析

用AI建站虽然快&#xff0c;但过程中隐藏的风险如果没到&#xff0c;轻则内容效果差&#xff0c;重则可能有版权或合规隐患。这份避坑指南&#xff0c;围绕大家最关心的10个核心问题&#xff0c;给出客观的分析和可操作的防范建议&#xff0c;帮你安心用好AI建站工具。\### 核心…...