# 最新免费可商用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 这个源码。