一个系统中有两个身份(agent和provider),一些案件状态的数据,在其它程序中发生改变需要实时通知用户,需要服务端主动发送消息 我们用a表示agent,p表示provider
- php >= 5.6.4
- redis-server
- php-redis
- php-swoole
-
.env中配置redis连接信息
REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
-
.env中配置swoole
SWOOLE_HOST=127.0.0.1 SWOOLE_PORT=9501
-
启动一个WebSocket服务
php artisan command:swoole-socket-server
-
启动一个Reids队列监听器
php artisan command:listen-queue
-
启动一个php server进行浏览器访问
php artisan serve
- 登录一个agent身份
- 登录一个provider身份
- 登录redis,在de_queue列表中存入数据让监听器处理
$ redis-cli $ lpush de_queue '{"cmd":"case_status","datas":{"case_id":100,"status":6,"agent_id":"a10","provider_id":"p10"}}
- 随机写入1千条数据发送给所有人
php artisan command:pressure-test