<?php
/**
 * 
 * @param
 * @return
 */
class online
{
	/*
	$list = [
		id => [
			'userid' => 'admin', //用户ID
			'connection' => $connection, //连接
			'lastReadTime' => 1234567890, //最后访问时间
			'lastSendTime' => 1234567890, //服务端对其最后发送时间
		]
	];
	*/
	public $timeoutval = 60; //超时时间(秒)
	public $list = [];
    public function __construct()
    {
       ;
    }

    public function set($connection,$userid)
    {
		$this->list[$connection->id] = [
			'userid'=>$userid,
			'connection'=>$connection,
			'lastReadTime'=>time(),
			'lastSendTime'=>0
		];
    }

    public function del($id)
    {
		if(isset($this->list[$id])){
			unset($this->list[$id]);
		}
    }

    public function clear()
    {
		foreach($this->list as $k=>$v){
			if($v['lastReadTime'] < time() - $this->timeoutval){
				$this->del($k);
			}
	   }
    }

    public function updateReadTime($id)
    {
		if(isset($this->list[$id])){
			$this->list[$id]['lastReadTime'] = time();
		}
    }

    public function lastSendTime($id)
    {
		if(isset($this->list[$id])){
			$this->list[$id]['lastSendTime'] = time();
		}
    }
	
	/*
	* 根据用户ID，取所有连接id
	*/
    public function getIdsByUserid($userid)
    {
	   $ids = [];
       foreach($this->list as $k=>$v){
			if($v['userid']==$userid){
				$ids[$k] = $k;
			}
	   }
	   return $ids;
    }

}