目录
骆寻IM
Laravel + LayIM + GatewayWorker 开发的网页聊天系统。
新的改变
我们对之前的开源项目–极云赋进行了重构,新版本的项目结构更为清晰,数据库设计更为合理,程序语法更为简洁,易于拓展维护。新版本不仅包含了旧版本的全部功能,我们还增加了如下几点新功能,与时俱进:
- 前后端完全分离 ,本项目包含一个完整的API服务器和两个全新设计的客户端( PC 客户端和手机客户端);
- 全新的右键菜单;
- MySQL+MongoDB 双数据库配置,高性能的 MongoDB 负责存储大量的聊天记录和消息记录;
- 阿里云短信;
- 阿里云 OSS 存储大文件和图片;
- 应用 https 和 wss 传输协议
项目截图
- 体验网址:im.luoxune.com
项目结构
- app
- Concole ------------------------------------------------------包含应用所有自定义的 Artisan 命令
- Http
- Controllers/Api ----------------------------------------------------------处理所有通过接口进入应用的请求
- Middleware --------------------------------------------------------------中间件
- Requests -----------------------------------------------------------------请求验证类
- Resources ---------------------------------------------------------------接口资源类
- Providers ----------------------------------------------------------服务提供者类
- Services -----------------------------------------------------------服务类
- Applications/LuoXun ---------------------------------------GatewayWorker配置文件目录
- config ----------------------------------------------------------------Laravel 配置文件目录
- database
- factories ---------------------------------------------------------- 数据库工厂目录
- migrations -------------------------------------------------------- 数据库迁移文件目录
- seeds -------------------------------------------------------------- 数据填充目录
- public
- plugins ------------------------------------------------------- 前端插件目录
- layui ---------------------------------------------------------- 把包含 LayIM 的 Layui 放在这里
- resources
- css ------------------------------------------------------------ 前端 CSS 目录
- js -------------------------------------------------------------- 前端 JS 目录
- lang ---------------------------------------------------------- 多语言设置目录
- views
- mobile -------------------------------------------------------------- 手机客户端
- pc ---------------------------------------------------------------------PC 客户端
- index.blade.php -------------------------------------------------- 首页视图
- login.blade.php --------------------------------------------------- 登录视图
- reg.blade.php ----------------------------------------------------- 注册视图
- routes
- api ---------------------------------------------------------------- 接口路由
- web ---------------------------------------------------------------视图路由 - .env ------------------------------------------------------ Laravel 全局配置文件
安装使用
我们假设你的服务器已经配置好了 Laravel 项目环境。
安装拓展包
composer update
打包 css/js
npm install
npm run production
编辑配置文件,把XXXX都填上
cp .env_example .env
vim .env
把包含 LayIM 的 layui 放在 /public 目录下
修改 /resources/views/pc/app.blade.php 和 /resources/views/mobile/app.blade.php 中的域名
var domain = ‘{Yourdomain}/wss’;
配置 nginx,解决 wss 协议问题
#laravel 框架 nginx 配置文件中的对根目录的访问修改为以下
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /wss {
proxy_pass localhost:5210;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_set_header Host $host;
}
生成数据加密秘钥
php artisan key:generate
生成 jwt 令牌秘钥
php artisan jwt:secret
数据库迁移
php artisan migrate
填充用户和群组账号数据表
php artisan db:seed
上线项目
php artisan up
FAQ
- 为什么项目中不包含 LayIM 文件?
LayIM 受国家计算机软件著作权保护,未经官网正规渠道授权不能公开产品源文件。当你获得 LayIM 后把包含 LayIM 的 layui 放在 /public 目录下即可。 - 为什么没有管理后台?
管理后台直接操作数据表,与项目中的请求处理逻辑无关。使用 laravel-admin 可以在十分钟内构建一个功能齐全的管理后台。 - 有没有配套文档?
旧版本有配套文档,新版本配套文档还在编写中。