Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问web-msg-sender怎么使用自定义的array? #20

Open
mdys opened this issue May 2, 2019 · 0 comments
Open

请问web-msg-sender怎么使用自定义的array? #20

mdys opened this issue May 2, 2019 · 0 comments

Comments

@mdys
Copy link

mdys commented May 2, 2019

// 全局数组保存uid在线数据
$uidConnectionMap = array();
$live_agent_arr=array(); //自定义了个函数,在 $socket->on( 'login', function ( $uid )use( $socket ) 引用是null的,不解

echo "is_arraya-".is_array($live_agent_arr)." is_nulla-".is_null($live_agent_arr)." is_stringa-".is_string($live_agent_arr)."\n\n";

// PHPSocketIO服务
$sender_io = new SocketIO( 2120 );
// 客户端发起连接事件时,设置连接socket的各种事件回调
$sender_io->on( 'connection', function ( $socket ) {
// 当客户端发来登录事件时触发

$socket->on( 'login', function ( $uid )use( $socket ) {
    global $uidConnectionMap,$last_online_count,$last_online_page_count,$live_agent_arr;
    // 已经登录过了
    
    if ( isset( $socket->uid ) ) {
        return;
    }
    // 更新对应uid的在线数据
    $uid = ( string )$uid;
    if ( !isset( $uidConnectionMap[ $uid ] ) ) {
        $uidConnectionMap[ $uid ] = 0;
    }
    
    echo "is_arrayb-".is_array($uidConnectionMap)." is_nullb-".is_null($uidConnectionMap)." is_stringb-".is_string($uidConnectionMap)."\n\n"; //执行结果 is_array($uidConnectionMap) 可以 true
    echo "is_array-".is_array($live_agent_arr)." is_null-".is_null($live_agent_arr)." is_string-".is_string($live_agent_arr)."\n\n";  //执行结果 is_array($live_agent_arr) 是flase, is_null($live_agent_arr)=true

    // 这个uid有++$uidConnectionMap[$uid]个socket连接
    ++$uidConnectionMap[ $uid ];
   
    if(isset($live_agent_arr)){
        array_push( $live_agent_arr, array( "exten" => $uid, "channel" => "" ) );
    }
    // 将这个连接加入到uid分组,方便针对uid推送数据
    $socket->join( $uid );
    $socket->uid = $uid;

} );

} );

我十分不理解的是,为何 我自己定义的

$live_agent_arr 在 function ($uid) use($socket) 是 null, 而例子里自带的$uidConntionMap可以正常使用? 我该怎么样使用自己定义的array?

请各位大神不吝赐教,小白跪谢!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant