ThinkPHP(ORM)+Swoole+vue客服聊天项目实战

浏览:1972 发布日期:2020/03/09 分类:技术分享
ThinkPHP(ORM)+Swoole+vue客服聊天项目实战
TP6(ORM)+Swoole+Vue客服聊天项目实战

项目介绍:

https://study.163.com/course/courseMain.htm?share=2&shareId=1023391257&courseId=1209733813
WebSocket做客户端推送消息,VUE做数据绑定和渲染,代码简洁优雅,易维护。
ThinkPHP(ORM)操作数据库,Swoole引擎提供WebSocket服务器支持,异步非阻塞多进程的WebSocket服务器。

400分钟干货编码,业务原理分析透彻,PHP实现Server端代码,向继续征战的PHP老兵致敬。
感谢ThinkPHP团队,感谢Swoole开发团队。


擅长技术:HTML5、CSS3、javascript、jQuery、Node.js、Vue、ReactJs、PHP、MySQL、ThinkPHP等

适用人群:
有PHP基础及JS基础的学员


目录:
第一章:技术选型和技术储备

001:项目介绍和技术选型注意事项

002:ThinkPHP(ORM)CURD操作数据库
composer require topthink/think-orm
针对phpim数据库单表user增删改查操作练习
SQL语句的变量用大括号包起来直接解析

003:IM服务(Linux)常用命令介绍和使用
此项目使用到的高频操作命令
1:chmod -R 777 文件夹目录
2:设置cli环境下的PHP运行环境
rm -f /usr/bin/php
ln -sf /www/server/php/73/bin/php /usr/bin/php
ln -sf /www/server/php/74/bin/php /usr/bin/php
3:查看swoole扩展版本php --ri swoole
4:查看im.php文件被谁占用 ps -ef | grep im.php
5:查看9501端口被谁占用 ls -i:9501
6:杀死某个进程 kill -9 9501
7:linux系统开放6501端口
8:执行PHP文件
php im.php (在前台运行,关闭ssh链接,服务终端)
php im.php & (在后台运行,关闭ssh链接,服务继续)
9:删除某个目录
rm -rf layim-v3.9.1/
10:删除某个文件产生的进程
ps aux |grep im.php|grep -v grep|awk '{print $2}'|xargs kill -9

第二章:服务端接口开发

001:数据库分析和设计
核心业务,用户表,客服表,会话表,消息表,用户对应客户(一对一),客服对应用户(一对多)。
websocket在客户端默认不支持长连接,新窗口连接产生信息文件索引fd,注意多个页面更新fd。
server向fd=101(用户)转发fd=102(客服)的信息
server向fd=102(客服)转发fd=101(用户)的信息

002:配置ftp文件自动上传和编写im基本类
配置PHPstorm文件自动上传和编写引入swoole的基本类im

003:引入swoole示例代码,开启携程
一行代码开启协程无阻塞--\Swoole\Runtime::enableCoroutine(true);

004:接口开发:用户登录和客服登录-定义数据结构
定义参数:username,password,websocket发送的是json字符串,PHP接受需要json_decode($pageparm,true);

005:接口开发:自动分配客户-随机分配指定分配
SQL:SELECT chatid,COUNT(id) as userconut FROM `im_chat` GROUP BY kefu_id;

006:接口开发:发送消息-服务器被动接受信息和主动转发消息
服务器被动接受fd=n信息和主动转发fd=m消息,Message转发各个方法操作

007:接口开发:获取会话消息列表-扩展分页加载

008:接口开发:获取客服会话列表

第三章:客户端开发

001:用户登录-创建WebSocket连接

002:客服登录-创建WebSocket连接

003:客服角色-拉取会话列表

004:用户角色-拉取消息记录

005:用户发送消息-推送到客服会话列表

006:客服角色-拉取消息记录,发送消息,实现点对点推送

007:自动分配客户BUG修改(接口逻辑)
添加一个字段bindUserCount(客服绑定用户数量)

第四章:
001:客户端代码细节优化

002:客户端断开自动重连
谨慎使用计数器,防止页面websocket连接过多客户端崩掉,后端server也会崩掉.

003:服务端代码细节优化(项目总结)
服务端Swoole一键开启协程.开启守护进程,后台运行.配置服务端心跳检测.有感兴趣的话可以把mysql切换成redis,效果更好。

ThinkPHP(ORM)/Swoole/vue客服聊天项目实战演示


项目部署:
1:导入sql文件
2:命令行下 php im.php & (启动服务)

注意事项
1:目前支持命令行启动服务
2:客服和用户密码默认都是123456(md5(123456))
3.项目代码和数据库表,接口文档在课程最后一节直接下载
最佳答案
评论( 相关
后面还有条评论,点击查看>>