服务器端发送事件库。

dev-master 2017-05-24 19:04 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:18:56 UTC


README

SSE 是一个 Laravel 包装器,用于 PHP 库 LibSSE,用于实现异步服务器端发送事件并将它们传递到视图中。

Laravel 支持的版本

Laravel: 5.1

稳定性

稳定

安装 SSE

使用 composer 下载最新包到 laravel 安装目录

	composer require manfal/sse

或手动在 composer.json 的 require 数组中添加包

    "manfal/sse": "dev-master"

然后运行

	composer update

将以下服务提供者在 config/app.php 文件中的 providers 数组下放置。

	'manfal\sse\SSEServiceProvider'

将以下外观者在 config/app.php 文件中的 aliases 数组下放置。

	'SSE' => 'manfal\sse\SSEFacade',
	'SSEEvent' => 'manfal\sse\SSEEventFacade'

使用方法

  1. 在 resources/views 目录中创建一个新的视图,命名为 ssedemo.blade.php,放置以下 HTML 和 JS 片段。
	<span id="time"></span>
	<script>
	var source = new EventSource('{!!url("/ssedemo")!!}');
	var d = document.getElementById('time');
	source.addEventListener('time',function(e){
		var time = e.data;
		d.innerHTML = time;
	},false);
	</script>
  1. 通过 artisan CLI 创建一个新的控制器
$>	php artisan make:controller SSEDemoController
  1. 在 SSEDemoController 中放置以下代码
	<?php
		namespace App\Http\Controllers;

		use Illuminate\Http\Request;

		use App\Http\Requests;
		use App\Http\Controllers\Controller;
		use SSEEvent;
		use SSE;

		class TimeEvent extends SSEEvent {
		    public function update(){
		        return date('l, F jS, Y, h:i:s A');
		    }
		}

		class SSEDemoController extends Controller
		{
		    /**
		     * Display a listing of the resource.
		     *
		     * @return Response
		     */
		    public function index()
		    {
		        return view('ssedemo');
		    }

		    public function sseCheck() {
		            $sse = new SSE();
		            $sse->exec_limit=10;
		            $sse->addEventListener('time',new TimeEvent());
		            $sse->start();
		    }
		}
  1. 在 app/Http/routes.php 中创建一个新的路由
	Route::get('/ssedemo', 'SSEDemoController@sseCheck');
  1. 刷新您的浏览器。