特别声明
注册会员根据级别享有相关下载优惠,请仔细辨别。所有资源均收集于互联网仅供学习、参考和研究,请理解这个概念,所以不能保证每个细节都符合你的需求,也可能存在未知的BUG与瑕疵, 你下载的资源和程序源码组件因其特殊性均为可复制品,所以不支持任何理由的退款兑现,请认真阅读本站声明和相关条款后再点击支付下载。

Raingad/IM即时聊天-php,正版源码,无后门

亲测可用,目前我的客服系统就是用的这个,直接送给会员

支持功能

  • 支持单聊和群聊,支持发送表情、图片、语音、视频和文件消息
  • 单聊支持消息已读未读的状态显示,在线状态显示
  • 群聊创建、删除和群成员管理、群公告、群禁言、@群成员等
  • 支持置顶联系人,消息免打扰;
  • 支持设置新消息声音提醒,浏览器通知
  • 支持管理员撤回群成员消息,支持群成员不能互相添加好友
  • 支持一对一音视频通话(已打通web端和移动端,小程序不支持)
  • 支持文件、图片和绝大部分媒体文件在线预览
  • 支持移动端(由uniapp开发,可打包H5、APP和小程序)
  • 全新支持企业模式和社区模式,社区模式支持注册、添加好友功能
  • APP支持通知栏消息推送(需要开启unipush模块,并开启手机通知权限,仅支持APP在线推送)
  • 支持简易后台管理,包括用户管理、群组管理、系统设置等

最新更新

请查看右侧发行版更新日志

v5.2.0

  1. 移动端增加聊天记录查看
  2. 增加系统公告,移动端首页滚动提醒
  3. 增加群聊支持单个人禁言,支持新成员查看历史聊天记录
  4. 增加后台可以限制人员的好友和群聊上限数量
  5. 优化后台设置可以实时更新推送
  6. 优化移动端输入框,解决ios低版本问题
  7. 修复若干bug

软件架构

后端技术栈:thinkphp6+workerman+redis

前端技术栈:vue2+Lemon-IMUI+element-UI

桌面端:vue2+Lemon-IMUI+element-UI + electron

移动端:uniapp for vue3 + pinia

安装教程

  1. 克隆代码到本地:
git clone https://gitee.com/raingad/im-chat-front.git
  1. 进入项目目录,执行:
npm install
  1. 开发调试
npm run serve
  1. 修改服务端域名

修改项目根目录下的 .env.development 文件,将VUE_APP_BASE_API的值改为自己的后端域名,构建后放服务端在运行时直接获取服务端的域名。

  1. 构建
npm run build
  1. 将打包好的文件(dist目录)里面的所有文件覆盖到后端的public目录下即可。

音视频通话组件

新的音视频通话组件已上线,完全开源,纯原生webrtc实现,不依赖任何第三方通讯组件,可以和移动端进行互通,这里就不在介绍了,自己看源码,下面将介绍旧版的音视频组件,采用的是peerjs组件。

peer音视频通话是一个独立的组件(@/components/message/webrtc/peer.vue),仅支持点对点通话,

使用方法

引入组件

//组件依赖于peerjs,需要在index.html中引入

 <script src="https://unpkg.com/peerjs@1.4.7/dist/peerjs.min.js"></script>

// 在需要用到组件的地方导入组件,最好是全局的
import webrtc from "@/components/webrtc";

注册组件

export default {
  name: "app",
  components: {
    webrtc
  },

使用组件

<webrtc :contact="currentChat" :config="webrtcConfig" alias="raingad" :userInfo="user" ref="webrtc" :key="componentKey"></webrtc>

组件参数

参数类型备注
contact对象当前窗口的联系人
userInfo对象当前登录用户
config对象peer的配置信息,用于点对点传输
alias字符串用于生成唯一通讯id的前缀

组件方法

//参数为true时表示视频通话,为false时为语音通话。
this.$refs.webrtc.called(true);

已知BUG

1、由于浏览器限制,如果登录进聊天系统没有进行过交互,音视频通话无法播放响铃,导致通话无法正常进行。

安装部署服务

服务器要求:

所需环境版本备注推荐版本
linux>= 7.0以下的版本未做测试7.9
nginx>= 1.17最新的
php>= 7.1不兼容8和7.47.3
mysql>= 5.7必须要5.7及以上5.7
redis>= 5.07.0

重要操作

使用宝塔面板更易安装

以下内容,非常重要!!!!!如果出现错误,重新检查是否以满足条件。

1、PHP需要安装扩展:redis fileinfo

2、PHP需要取消禁用函数:shell_exec chown exec putenv proc_open pcntl_exec pcntl_alarm pcntl_fork pcntl_waitpid pcntl_wait pcntl_signal pcntl_signal_dispatch

以上内容,非常重要!!!!!如果出现错误,重新检查是否以满足条件。

  • 行版中下载最新发布的版本。

开始安装

  1. 把代码上传至服务器,将整个目录权限给 www 用户,并赋予 755权限,创建网站,把网站的运行目录指向项目根目录下的 public 目录,运行目录一定要是这个。
  2. 设置伪静态和反向代理,下面只展示nginx的伪静态和反向代理配置,apache的请自行百度或者使用chatGPT转换。【直接复制下面全部代码到伪静态中即可】
#伪静态配置
location ~* (runtime|application)/{
	return 403;
}
location / {
	if (!-e $request_filename){
		rewrite  ^(.*)$  /index.php?s=$1  last;   break;
	}
}

#反向代理配置,如果有修改端口,需要替换下方的8282端口

location /wss
    {
      proxy_pass http://127.0.0.1:8282;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_set_header X-Real-IP $remote_addr;
    }
  1. 如果有域名并且要使用音视频通话、语音消息等服务还需要配置证书来开启HTTPS,可以使用免费的 Let's Encrypt 证书,如果不需要这些服务,可以直接使用HTTP协议和IP地址访问,但是功能会受限。
  2. 访问你的ip或者域名即可进入自定义安装向导,如果访问出错,就是自己的准备工作没有按照要求进行,请检查。
  3. 部署完成之后管理员账号密码为:administrator 123456,管理入口在聊天界面的左下角。
  4. 安装成功后是无法实时接收消息的,请参考下一章“启动消息推送服务”。

如果安装失败

  1. 进入 public\sql\database.sql 将数据库导入自己的数据库。
  2. 进入项目根目录,修改 example.env 为 .env ,并修改数据库相应的参数,请仔细阅读env中的配置说明

PS:如需开启聊天文件存入oss,需要在后台中进行配置,配置后不要再对环境配置文件进行修改。

启动消息推送服务

因为是聊天软件需要用到websockt,所以我们需要启动workerman,系统已经内置了相应的服务,可以在后台管理首页 (管理员账号登录后,从左下角进入) 进行运行服务。如果后台运行启动不成功,需要进行以下调试:

系统服务启动失败的原因:

  1. 你可能在终端启动了 php think worker:gateway start 或者 php start.php start 这两个命令,导致了重复启动消息推送造成了冲突,请在终端中运行 killall -9 php 或者重启启动服务器再重新到后台管理中启动系统服务。
  2. 可能是php不是默认版本,终端执行 php -v 查看版本号是否和创建网站是选定的php版本不一致,如果不一致,需要把网站的版本修改为默认的php版本,并php安装对应的依赖和取消禁用函数。
  3. 可能是执行的目录权限不够。重新对所有目录设置为 用户 www 权限 755 ,再次重试。

如果启动失败可进行调试

  1. 进入项目根目录 运行 php think worker:gateway start,或者运行 php start.php start 即可运行消息服务。windows下请直接运行根目录下的start_for_win.bat文件,由于Workerman在Windows下有诸多使用限制,所以正式环境建议用Linux系统,windows系统仅建议用于开发环境。如果没有出现报错,请将运行的命令终止,或者执行php think worker:gateway stop or php start.php stop,自己启动了那个就终止哪个。调试了没有问题的话,可以直接在管理后台启动消息推送服务
  2. 消息服务需要放行 8282 端口,如需修改,请修改环境配置文件中WORKER 板块的相应参数。windows用户请修改 [ app\worker\start_gateway.php] 中的 8282 端口。端口号根据情况需改。
  3. 系统采用直接用域名作为websocket服务的地址,所以需要在网站的nginx中配置代理并监听8282端口,已在伪静态中写了代理配置的参数。
  4. 更多关于workerman的使用,请进入workerman官网官网进行查阅。

前端项目运行要求:

所需环境版本备注
node>= 14.0.014以下的版本未做测试
npm>= 7.0.0
图片[1]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[2]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[3]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[4]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[5]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[6]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[7]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[8]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[9]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[10]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[11]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[12]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[13]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[14]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
图片[15]-Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
    © 版权声明
    THE END
    点赞12
    Raingad/IM即时聊天-php,正版源码,无后门-源码交易网
    Raingad/IM即时聊天-php,正版源码,无后门
    此内容为付费资源,请付费后查看
    388
    付费资源