swooleServer.php
$redis = new redis();
$result = $redis->connect("127.0.0.1", 6379);
$server = new swoole_websocket_server("0.0.0.0", 9501);
$server->on('open', function (swoole_websocket_server $server, $request) {
global $redis;
$nfd = $request->fd;
echo "客户端{$nfd}成功接入\n";
$redis->hset("User",$nfd,$nfd);//保存客户端ID
$users = $redis->hvals("User");
var_dump($users);
});
$server->on('message', function (swoole_websocket_server $server, $frame) {
global $redis;
$data = $frame->data;
$fd = $frame->fd;
echo "{$fd}:{$data}\n";
$users = $redis->hvals("User");//取回所有用户
var_dump($users);
foreach ($users as $u)
{
$server->push($u , $data);//循环广播
}
});
$server->on('close', function ($ser, $fd) {
global $redis;
$redis->hdel("User",$fd);
$users = $redis->hvals("User");
var_dump($users);
echo "client {$fd} closed\n";
});
$server->start();
?>