Home  >  Article  >  Backend Development  >  Can only two global variable data be stored in swoole's server.php?

Can only two global variable data be stored in swoole's server.php?

WBOY
WBOYOriginal
2016-08-04 09:19:151210browse

There have been only two
Can only two global variable data be stored in swoole's server.php?
four clients opened. . .

<code><?php

// 官网demo
$ws = new swoole_websocket_server("***********", 9502);
$fds = [];

/**
 * 广播发送
 * @param swoole_websocket_server $ws
 * @param $msg
 * @param $fds
 * @param null $me
 */
function broadcast(swoole_websocket_server $ws, $msg, $fds , $me = null) {
    foreach($fds as $fd) {
        if($fd != $me) {
            $ws->push($fd, $msg);
        }
    }
}

// 监听WebSocket连接打开事件
$ws->on('open', function (swoole_websocket_server $ws, $request) use(&$fds) {
    $fds[$request->fd] = $request->fd;
    $ws->push($request->fd, "欢迎接入小孟聊天平台\n");
    broadcast($ws, "用户{$request->fd}登录啦!", $fds, $request->fd);
    var_dump($fds);
});

// 监听WebSocket消息事件
$ws->on('message', function (swoole_websocket_server $ws, $frame) use(&$fds) {
    $msg =  'from'.$frame->fd.":{$frame->data}\n";
    broadcast($ws, $msg, $fds, $frame->fd);
   // $ws->push($frame->fd, "server: {$frame->data}");
    // $ws->push($frame->fd, "server: {$frame->data}");
});

// 监听WebSocket连接关闭事件
$ws->on('close', function (swoole_websocket_server $ws, $fd) use(&$fds) {
    unset($fds[$fd]);
    broadcast($ws, "用户{$fd}下线啦!", $fds);
});


$ws->start();</code>

Reply content:

There have been only two
Can only two global variable data be stored in swoole's server.php?
four clients opened. . .

<code><?php

// 官网demo
$ws = new swoole_websocket_server("***********", 9502);
$fds = [];

/**
 * 广播发送
 * @param swoole_websocket_server $ws
 * @param $msg
 * @param $fds
 * @param null $me
 */
function broadcast(swoole_websocket_server $ws, $msg, $fds , $me = null) {
    foreach($fds as $fd) {
        if($fd != $me) {
            $ws->push($fd, $msg);
        }
    }
}

// 监听WebSocket连接打开事件
$ws->on('open', function (swoole_websocket_server $ws, $request) use(&$fds) {
    $fds[$request->fd] = $request->fd;
    $ws->push($request->fd, "欢迎接入小孟聊天平台\n");
    broadcast($ws, "用户{$request->fd}登录啦!", $fds, $request->fd);
    var_dump($fds);
});

// 监听WebSocket消息事件
$ws->on('message', function (swoole_websocket_server $ws, $frame) use(&$fds) {
    $msg =  'from'.$frame->fd.":{$frame->data}\n";
    broadcast($ws, $msg, $fds, $frame->fd);
   // $ws->push($frame->fd, "server: {$frame->data}");
    // $ws->push($frame->fd, "server: {$frame->data}");
});

// 监听WebSocket连接关闭事件
$ws->on('close', function (swoole_websocket_server $ws, $fd) use(&$fds) {
    unset($fds[$fd]);
    broadcast($ws, "用户{$fd}下线啦!", $fds);
});


$ws->start();</code>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn