64 lines
1.6 KiB
PHP
64 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* This file is part of workerman.
|
|
*
|
|
* Licensed under The MIT License
|
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
|
* Redistributions of files must retain the above copyright notice.
|
|
*
|
|
* @author walkor<walkor@workerman.net>
|
|
* @copyright walkor<walkor@workerman.net>
|
|
* @link http://www.workerman.net/
|
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
|
*/
|
|
namespace Workerman\Protocols\Http;
|
|
|
|
/**
|
|
* Class ServerSentEvents
|
|
* @package Workerman\Protocols\Http
|
|
*/
|
|
class ServerSentEvents
|
|
{
|
|
/**
|
|
* Data.
|
|
* @var array
|
|
*/
|
|
protected $_data = null;
|
|
|
|
/**
|
|
* ServerSentEvents constructor.
|
|
* $data for example ['event'=>'ping', 'data' => 'some thing', 'id' => 1000, 'retry' => 5000]
|
|
* @param array $data
|
|
*/
|
|
public function __construct(array $data)
|
|
{
|
|
$this->_data = $data;
|
|
}
|
|
|
|
/**
|
|
* __toString.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function __toString()
|
|
{
|
|
$buffer = '';
|
|
$data = $this->_data;
|
|
if (isset($data[''])) {
|
|
$buffer = ": {$data['']}\n";
|
|
}
|
|
if (isset($data['event'])) {
|
|
$buffer .= "event: {$data['event']}\n";
|
|
}
|
|
if (isset($data['id'])) {
|
|
$buffer .= "id: {$data['id']}\n";
|
|
}
|
|
if (isset($data['retry'])) {
|
|
$buffer .= "retry: {$data['retry']}\n";
|
|
}
|
|
if (isset($data['data'])) {
|
|
$buffer .= 'data: ' . str_replace("\n", "\ndata: ", $data['data']) . "\n";
|
|
}
|
|
return $buffer . "\n";
|
|
}
|
|
} |