コード例 #1
0
ファイル: server.php プロジェクト: harryheng/test
<?php

$server = new swoole_websocket_server("0.0.0.0", 8080);
$server->on('message', function (swoole_websocket_server $server, $frame) {
    foreach ($server->connection_list() as $fd) {
        $server->push($fd, $frame->data, true);
    }
});
$server->start();
コード例 #2
0
ファイル: my-server.php プロジェクト: silentred/learning-path
<?php

$server = new swoole_websocket_server("", 9501);
$server->on('open', function (swoole_websocket_server $server, $request) {
    echo "server: handshake success with fd{$request->fd}\n";
});
$server->on('message', function (swoole_websocket_server $server, $frame) {
    echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
    $conn_list = $server->connection_list();
    //var_dump($conn_list); 广播
    foreach ($conn_list as $fd) {
        $server->push($fd, "from: client{$frame->fd}, content: " . $frame->data);
    }
    //$server->push($frame->fd, "from: client{$fd}, content: ".$frame->data);
});
$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed\n";
});
$server->start();
コード例 #3
0
ファイル: ws_server.php プロジェクト: chenjiesuper/chatroom
<?php

//创建websocket服务器对象,监听0.0.0.0:9502端口
$ws = new swoole_websocket_server("0.0.0.0", 9502);
//监听WebSocket连接打开事件
$ws->on('open', function ($ws, $request) {
    var_dump($request->fd, $request->get, $request->server);
    $start_fd = 0;
    while (true) {
        $conn_list = $ws->connection_list($start_fd, 10);
        if ($conn_list === false or count($conn_list) === 0) {
            echo "finish\n";
            break;
        }
        $start_fd = end($conn_list);
        var_dump($conn_list);
        foreach ($conn_list as $fd) {
            $ws->push($fd, "消息: " . $request->fd . "来到了房间");
        }
    }
});
//监听WebSocket消息事件
$ws->on('message', function ($ws, $frame) {
    echo "Message: {$frame->data}\n";
    $start_fd = 0;
    while (true) {
        $conn_list = $ws->connection_list($start_fd, 10);
        if ($conn_list === false or count($conn_list) === 0) {
            echo "finish\n";
            break;
        }
コード例 #4
0
ファイル: server.php プロジェクト: jonny77/swoole-camera
<?php

$serv = new swoole_websocket_server('0.0.0.0', 9501);
$serv->on('Request', function ($req, $resp) {
    if ($req->server['request_uri'] == '/camera') {
        $html = file_get_contents(__DIR__ . '/camera.html');
    } else {
        $html = file_get_contents(__DIR__ . '/index.html');
    }
    $resp->end($html);
});
$serv->on('Message', function ($serv, $frame) {
    $connections = $serv->connection_list();
    foreach ($connections as $fd) {
        $info = $serv->connection_info($fd);
        if ($fd != $frame->fd and $info['websocket_status'] > 1) {
            $serv->push($fd, $frame->data);
        }
    }
});
$serv->start();