国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

use WorkermanProtocolsHttpRequest;

theone

TypeError: Argument 2 passed to {closure}() must be an instance of Workerman\Protocols\Http\Request, string given, called in /www/wwwroot/tp61/vendor/workerman/workerman/Connection/TcpConnection.php on line 638 and defined in /www/wwwroot/tp61/workermanstudy/ws_test.php:35

第35行是下面這個調用 看了好久沒看出有問題呀
$ws_worker->onMessage = function(TcpConnection $connection,Request $request)

一開始也use了
use Workerman\Protocols\Http\Request;

還是不行

1725 2 0
2個回答

nitron

bai tuo ni ba dai ma tie quan hao bu hao?

  • theone 2022-03-20

    全部代碼
    <?php
    use Workerman\Worker;
    use Workerman\Connection\TcpConnection;
    use Workerman\Protocols\Http\Request;

    require_once __DIR__ . '/../vendor/autoload.php';

    // 注意:這里與上個例子不同,使用的是websocket協議
    $ws_worker = new Worker("websocket://0.0.0.0:2000");

    $ws_worker->onWorkerStart = function($ws_worker)
    {
    // 將db實例存儲在全局變量中(也可以存儲在某類的靜態(tài)成員中)
    global $db;
    $db = new \Workerman\MySQL\Connection('localhost', '3306', 'tp6', 'ERFYFsaLKSa62dKc', 'tp6');
    };

    // 啟動4個進程對外提供服務
    $ws_worker->count = 1;

    $ws_worker->onConnect = function(TcpConnection $connection)
    {
    $connection->id='進程id'.rand(10,999).$connection->id;
    $data = array(
    'user'=>'鏈接成功',
    'message'=>$connection->id
    );
    $connection->send(json_encode($data));
    };

    // 當收到客戶端發(fā)來的數據后返回hello $data給客戶端
    $ws_worker->onMessage = function(TcpConnection $connection, Request $request)
    {
    global $db;
    $all_tables = $db->query("select * from think_message_list");

    // 向客戶端發(fā)送hello $data
    foreach($connection->worker->connections as $con)
    {
        //var_dump($con->id);
        if($con->id !=$connection->id){
            $datal = array(
                    'user'=>$connection->id.';'.$con->id,
                    'message'=>$data
                );
            $con->send(json_encode($datal));
        }
    
    }
    
    //$cookie = $request->cookie();
    //var_dump($cookie);

    };

    // 運行worker
    Worker::runAll();

walkor 打賞

websocket協議onMessage第二個參數是字符串,不是Request對象。按照手冊應該是這樣

$ws_worker->onMessage = function(TcpConnection $connection, $data){

};
  • theone 2022-03-20

    官網的例子就是這樣寫的http://wtbis.cn/doc/workerman/http/request.html

  • walkor 2022-03-20

    官網的是http協議,你的是websocket協議

  • theone 2022-03-20

    恍然大明白 謝謝大佬

年代過于久遠,無法發(fā)表回答
??