# 最新免费可商用CMS系统
基于 thinkphp6 + vue 的多站点多语言,SEO友好的开源CMS系统,可免费商用。
https://gitee.com/digital-flag/huo-cms
>[danger]购买的用户可以到 “源码下载” 章节,下载源码
## ThinkPHP5+workerman+layIM打造聊天系统---ichat
* ThinkPHP5 是ThinkPHP 3.X系列之后的重量级产品,以出色的架构设计,强劲的性能闻名。很适合我们快速的开发成熟的商用系统。到目前为止,github上也出现了很多成熟的thinkphp5快速开发的通用后台产品。在这里给自己的一个项目做个广告:[snake通用后台](https://github.com/nick-bai/snake),算的上最早的一批tp5通用后台了,功能很简单,便于新手快速的理解和使用tp5。到写作此文章开始,已经有139个star了。
* Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、异步消息队列等众多高性能组件。它的作者是来自鹅厂的大神。本系统 laychat 采用的是 Wokerman的 GatewayWorker3.X系列框架。文档可参考:[GetwayWorker手册](http://www.workerman.net/gatewaydoc/)
* layIM是原阿里的大神 贤心倾力打造的一款Web即时通讯前端解决方案。界面优美,功能强悍,仿真度高。官网:[layim官网](http://layim.layui.com/),手册:[layim手册](http://www.layui.com/doc/modules/layim.html)
**聊天部分功能清单**
* * * * *
* 聊天用户的注册
* 聊天用户的登录
* 修改个人资料
* 修改个性签名
* 切换在线状态
* 按条件搜索添加好友
* 系统消息盒子
* 添加好友申请与同意/拒绝好友
* 好友聊天
* 创建群组
* 按条件查找群
* 申请加入群组
* 管理我的群组
* 群组聊天
* 右键退出我的群组
* 聊天发送语音
* 聊天发送图片
* 聊天发送文件
* 空间的说说发表,评论功能
* 查看个人和群聊记录
* 好友右键功能
1. 进入好友空间
1. 将好友加入黑名单
1. 移动好友分组
1. 删除好友
1. 举报好友
**大致了解一下外观**
[了解外观](http://fly.layui.com/jie/6943.html)
**本系统用到的全部源码**
* * * * *
我会在本套教程中,全部展示这些源码,展示源码的方式如:
~~~
<?php
// +----------------------------------------------------------------------
// | laychat-v3.0
// +----------------------------------------------------------------------
// | Author: NickBai <1902822973@qq.com>
// +----------------------------------------------------------------------
namespace app\admin\controller;
use think\Controller;
class Chat extends Controller
{
public function index()
{
if(request()->isPost()){
$data = input('post.');
$data['file_ext'] = trim($data['file_ext']);
$data['img_ext'] = trim($data['img_ext']);
writeCtConfig($data);
return json(['code' => 1, 'data' => '', 'msg' => '配置成功']);
}
$config = readCtConfig();
empty($config) &&
$config = ['file_size' => 2, 'file_ext' => 'zip|rar', 'img_size' => 2, 'img_ext' => 'png|jpg|gif'];
$this->assign([
'config' => $config,
'up_size' => ini_get('upload_max_filesize')
]);
return $this->fetch();
}
}
~~~
你可以跟着教程,一步一步搭建属于自己的 webIM系统。
**本地环境的注意事项**
* * * * *
本次系统演示,采用的 phpstudy 这个集成环境,php版本为 5.6.27。服务器 以apache 为例,请保持与我一致,或者自己修改其中不兼容的部分。
**其他建议**
* * * * *
1. 本套系统牵扯到的 websocket相关的知识,以及tcp协议的相关知识,不懂的可以百度做一些功课。也可以通过我的博客:[我的博客](http://www.cnblogs.com/nickbai/),了解一些相关的知识。
1. 本系统是基于windows平台的学习版本,当然你只需要下载linux版本的workerman即可轻松的实现linux平台下的应用,为了演示和学习的方便,本系统基于windows平台下讲解。
1. 数据库不了解功能的 可以参考 《数据字典》 这一章节。
1. 由于讲解这个教程的时候,我的代码已经完成了,没办法一步一步的完全拆开介绍。因此,我会先全部放出完成的js代码,然后顺着js的接口,一步一步的对php代码和workerman代码进行讲解。这些js代码,我会首先放出,方便你在跟着教程的同时,有代码依据。
1. 有些workerman和layIM中的方法,可能没有讲到,如有不理解的,可以自行查找手册。手册写的都很明确。
## 郑重声明
>[danger] 本系统用到的 layIM 为非开源程序。请务必到官网进行授权获得资源。本教程源码部分,不会放出 layim.js 这个源码。
- ichat系统说明
- workerman与Thinkphp5整合原理
- ichat系统的基础搭建
- 通用后台的搭建
- workerman的集成
- layIM的集成
- 管理员后台功能的实现
- 后台登录退出的实现
- 群组管理的设计与实现
- 群组基础配置
- 群组管理
- 用户管理
- 聊天设置
- 用户的举报
- 聊天系统的设计与实现
- 注册功能的实现
- 登录功能的实现(1)
- 登录功能的实现(2)
- 登录功能的实现(3)
- 登录功能的实现(4)
- 修改个人资料的实现
- 修改个性签名的实现
- 切换在线状态的实现
- 添加好友的实现
- 消息盒子
- 用意/拒绝好友(1)
- 同意/拒绝好友(2)
- 好友聊天的实现
- 创建群组的实现
- 按条件查找群组
- 申请加入群组
- 管理我的群组
- 群组聊天
- 右键退出群组
- 发送语音
- 发送图片
- 发送文件
- 用户空间功能
- 查看聊天记录
- 进入好友空间
- 将好友加入黑名单
- 移动好友分组
- 删除好友
- 举报好友
- ichat(移动版)
- 登录的实现
- 聊天的实现
- live客服模式
- 数据字典
- 全国区域数据
- 系统整体结构说明
- main.js全部代码
- 源码下载