ohhink / swoft-im
Swoft IM
Installs: 130
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 0
Type:project
Requires
- php: >7.1
- ext-json: *
- ext-libxml: *
- ext-mbstring: *
- ext-pdo: *
- ext-redis: *
- ext-simplexml: *
- swoft/apollo: ~2.0.0
- swoft/breaker: ~2.0.0
- swoft/consul: ~2.0.0
- swoft/crontab: ~2.0.0
- swoft/db: ~2.0.0
- swoft/devtool: ~2.0.0
- swoft/framework: ~2.0.0
- swoft/http-server: ~2.0.0
- swoft/i18n: ~2.0.0
- swoft/limiter: ~2.0.0
- swoft/process: ~2.0.0
- swoft/redis: ~2.0.0
- swoft/rpc-client: ~2.0.0
- swoft/rpc-server: ~2.0.0
- swoft/session: ~2.0.0
- swoft/task: ~2.0.0
- swoft/tcp-server: ~2.0.0
- swoft/view: ~2.0.0
- swoft/websocket-server: ~2.0.0
Requires (Dev)
- phpunit/phpunit: ^7.5
- swoft/swoole-ide-helper: dev-master
This package is auto-updated.
Last update: 2025-01-05 21:18:20 UTC
README
简介
本项目是基于Swoft的练手项目,主要使用框架中的Http,WebSocket构建,用于新手熟悉Swoft框架。
环境要求
效果展示
很有意思的登录页
登陆首页
用户:程心,好友:三体
用户:三体,好友:程心
聊天页面
用户:程心,好友:三体
功能
- 用户登陆退出功能(todo 注册功能)
- 登陆认证中间件
- 同一用户,打开多个窗口,可以实现聊天记录同步接受,即支持多端登陆。
- 好友列表(todo 新增好友功能)
- WebSocket端已支持群聊功能(todo Http端需要做逻辑和界面处理)
安装
Composer 创建项目
$ composer create-project ohhink/swoft-im
将.env.example复制成.env并配置对应参数
APP_DEBUG=0 SWOFT_DEBUG=0 REDIS_ONLINE_USER=online-user REDIS_HOST=127.0.0.1 REDIS_PORT=6379 DATABASE_HOST=192.168.10.10 DATABASE_USERNAME=homestead DATABASE_PASSWORD=secret DATABASE_TABLE=swoft DATABASE_CHARSET=utf8mb4
运行数据库迁移命令
$ php bin/swoft migrate:up
添加模拟数据,也可以自己创建,主要是user用户表和friend好友关系表
# 添加用户 INSERT INTO `user`(`id`, `name`, `username`, `password`, `avatar`, `online`, `created_at`, `updated_at`) VALUES (1, '程心', 'user1', '2bbff72ba88f1c6a17f43819b09806ac', '/image/avatar2.jpg', 0, NULL, NULL); INSERT INTO `user`(`id`, `name`, `username`, `password`, `avatar`, `online`, `created_at`, `updated_at`) VALUES (2, '三体', 'user2', '2bbff72ba88f1c6a17f43819b09806ac', '/image/avatar1.jpg', 0, NULL, NULL); # 添加好友关系 INSERT INTO `friend`(`id`, `user_id_a`, `user_id_b`, `created_at`, `updated_at`) VALUES (1, 1, 2, NULL, NULL); INSERT INTO `friend`(`id`, `user_id_a`, `user_id_b`, `created_at`, `updated_at`) VALUES (2, 2, 1, NULL, NULL);
启动WebSocket和Http
$ php bin/swoft ws:start
# 热更新启动,适合开发使用
$ php swoftcli.phar run -c ws:start
使用
访问对应地址,这里假设ip为192.168.10.10
,端口为18308
,所以访问地址为
http://192.168.10.10:18308/login # 账号:user1 # 密码123123 # 账号:user2 # 密码123123
注意,要在本机实现两个客户端间的通讯,需要使用两个浏览器,或者开启一个Chrome的匿名模式
维护者
如何贡献
非常欢迎你的加入! 有任何问题或者想要贡献代码,请提交 issue
使用许可
MIT © OhhInk