Heim >Backend-Entwicklung >PHP-Tutorial >Können nur zwei globale Variablendaten in swooles server.php platziert werden?

Können nur zwei globale Variablendaten in swooles server.php platziert werden?

WBOY
WBOYOriginal
2016-08-04 09:19:151276Durchsuche

Es wurden nur zwei
Können nur zwei globale Variablendaten in swooles server.php platziert werden?
vier Kunden eröffnet. . .

<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>

Antwortinhalt:

Es wurden nur zwei
Können nur zwei globale Variablendaten in swooles server.php platziert werden?
vier Kunden eröffnet. . .

<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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn