服务端
<?php
//创建WebSocket Server对象,监听0.0.0.0:6060端口
$ws = new Swoole\WebSocket\Server('0.0.0.0', 6060);
$ws->set([
'daemonize' => true, //守护进程
'heartbeat_idle_time' => 600, // 表示一个连接如果600秒内未向服务器发送任何数据,此连接将被强制关闭
'heartbeat_check_interval' => 60, // 表示每60秒遍历一次
]);
//实例化Redis
$redis = new Redis();
//对redis进行连接
$redis->connect('127.0.0.1','6379');
//监听WebSocket连接打开事件
$ws->on('Open', function ($ws, $request) {
//向小程序端进行一个连接返回,告知用户已经连接上服务器,返回值需要转为json数据格式
$ws->push($request->fd, json_encode(['msg'=>'用户已连接'],true));
});
//监听WebSocket消息事件
$ws->on('Message', function ($ws, $frame) use ($redis) {
//将我们从小程序端传递过来的数据转换成数组格式进行处理
$data = json_decode($frame->data,true);
//通过小程序端传递过来的类型进行处理
switch($data['type']){
//如果类型为连接