1 Star 0 Fork 158

57F / IM即时聊天-php

forked from Raingad / IM即时聊天-php 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

IM即时聊天

介绍

Raingad-IM是一个开源的即时通信demo,需要前后端配合使用,主要用于学习交流,为大家提供即时通讯的开发思路,许多功能需要自行开发,开发的初衷旨在快速建立企业内部通讯系统、内网交流、社区交流。

类型 链接
前端源码 https://gitee.com/raingad/im-chat-front
后端源码 https://gitee.com/raingad/im-instant-chat
web端演示 http://im.raingad.com/index.html
移动端H5演示 http://im.raingad.com/h5
安卓APP演示 https://emoji.raingad.com/file/raingad.apk

体验账号:13800000002 密码:123456

尾号2、3、4......18、19、20 都是

体验账号:13800000020 密码:123456

支持功能

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

最新更新

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

** v4.0.0 **

  1. 全新增加@群成员功能,支持@所有人
  2. 修改最近聊天界面,增加未读消息和@消息的筛选
  3. 重写web端文件的消息类型,并支持文件拖拽发送
  4. 修复移动端网络断开后,又连上网络时,websocket自动重连
  5. 修复扫码加群时无加载动画导致多次入群
  6. 修复若干BUG

软件架构

后端技术栈:thinkphp6+workerman+redis

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

安装教程

安装程序需要有一定的PHP经验和服务器运维经验,如果没有请加入交流群联系作者,作者提供付费部署服务!

准备工作

需要先安装好运行环境,推荐使用宝塔服务器,安装LNMP的架构,建议使用nginx作为服务器,不建议使用apache。需要安装以下软件:

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

重要操作

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

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

源码下载

  • 克隆代码到本地:
git clone https://gitee.com/raingad/im-instant-chat.git
  • 进入项目目录,执行:
composer install

或者

  • 【推荐使用】下载完整源码放到自己的服务器上。请注意看gitee项目主页顶部右侧 (发行版) ,请在发行版中下载最新发布的版本。

开始安装

  1. 创建网站,把网站的运行目录指向项目根目录下的 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协议,但是功能会受限。

  2. 访问你的ip或者域名即可进入自定义安装向导,如果访问出现错误请参考下一节安装失败的第二项,将环境配置文件的 APP_DEBUG 打开,看报错情况。

  3. 先参考下一章“启动消息推送服务”,再来安装程序最佳。

如果安装失败

  1. 进入 public\sql\database.sql 将数据库导入自己的数据库。

  2. 进入项目根目录,修改 example.env.env ,并修改数据库相应的参数,请仔细阅读env中的配置说明

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

启动消息推送服务

因为是聊天软件需要用到websockt,所以我们需要启动workerman,系统已经内置了相应的服务,可以在后台管理首页进行运行服务,但是首次使用需要先进行调试。

  1. 进入项目根目录 运行 php think worker:gateway start -d,或者运行 php start.php start -d 即可运行消息服务,测试时不要-d。windows下请直接运行根目录下的start_for_win.bat文件,由于Workerman在Windows下有诸多使用限制,所以正式环境建议用Linux系统,windows系统仅建议用于开发环境。

  2. 消息服务需要放行 8282 端口,如需修改,请修改环境噢配置文件中WORKER 板块的相应参数。windows用户请修改 [ app\worker\start_gateway.php] 中的 8282 端口。端口号根据情况需改。

  3. 系统采用直接用域名作为websocket服务的地址,所以需要在网站的nginx中配置代理并监听8282端口,已在伪静态中写了代理配置的参数。

  4. 更多关于workerman的使用,请进入workerman官网官网进行查阅。

  5. 部署完成之后管理员账号密码为:administrator 123456,管理入口在聊天界面的左下角。

安装部署服务

作者提供本系统的安装服务,包括后端和前端部署到线上,可手把手教学,保证项目的完美运行,200元/次,安装服务可赠送详细的安装教程以及接口文档,如有需要可以进群联系作者!

交流群

如果有什么问题,请留言,或者加入我们的QQ群!

创作不易,点个star吧

QQ 交流群:336921267

ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) All rights reserved。 ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 Apache Licence是著名的非盈利开源组织Apache采用的协议。 该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, 允许代码修改,再作为开源或商业软件发布。需要满足 的条件: 1. 需要给代码的用户一份Apache Licence ; 2. 如果你修改了代码,需要在被修改的文件中说明; 3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 带有原来代码中的协议,商标,专利声明和其他原来作者规 定需要包含的说明; 4. 如果再发布的产品中包含一个Notice文件,则在Notice文 件中需要带有本协议内容。你可以在Notice中增加自己的 许可,但不可以表现为对Apache Licence构成更改。 具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

即时通信聊天应用Raingad-IM后端代码,需要前后端配合使用,可以为企业快速构建内部聊天应用、团队私密聊天,也可以作为社区聊天。支持文本、文件、图片、语音、视频等消息格式,还支持点对点音视频聊天,支持web端、桌面端和uniapp,uniapp可以打包成小程序、h5、APP。 展开 收起
PHP
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/F57/im-instant-chat.git
git@gitee.com:F57/im-instant-chat.git
F57
im-instant-chat
IM即时聊天-php
master

搜索帮助