sanchescom / laravel-phpsocket.io
Laravel phpsocket.io
0.1.7
2019-03-20 13:24 UTC
Requires
- php: ^7.2
- illuminate/support: 5.8.*
- workerman/phpsocket.io: ^1.1
Requires (Dev)
- mockery/mockery: ^1.2
- orchestra/testbench: ^3.8
- phpunit/phpunit: ~8.0
- squizlabs/php_codesniffer: ^3.4
README
Laravel与phpsocket.io
这是基于Workerman的phpsocket.io的服务端实现,用于Laravel的包。
入门指南
以下说明将帮助您在本地机器上复制项目并启动开发与测试。有关如何将项目部署到生产系统的说明,请参阅部署。
安装
使用Composer在项目根目录中安装此包。
$ composer require sanchescom/laravel-phpsocket.io
在app/Providers
中创建SocketServiceProvider.php
<?php namespace App\Providers; use Sanchescom\LaravelSocketIO\SocketServiceProvider as ServiceProvider; use App\Sockets\ExampleSocket; /** * Class SocketServiceProvider. */ class SocketServiceProvider extends ServiceProvider { /** * The socket handlers for the application. * * @var array */ protected $sockets = [ ExampleSocket::class, ]; }
Laravel 5.x
更新composer后,将ServiceProvider添加到config/app.php
中的providers数组。
'providers' => [ ... App\Providers\SocketServiceProvider::class, ],
Lumen
更新composer后,将以下行添加到bootstrap/app.php
中以注册provider。
$app->register(App\Providers\SocketServiceProvider::class);
使用
创建文件夹app\Sockets
并将ExampleSocket.php
放入其中
<?php namespace App\Sockets; use PHPSocketIO\SocketIO; use Sanchescom\LaravelSocketIO\Sockets\AbstractSocket; use Workerman\Lib\Timer; class ExampleSocket extends AbstractSocket { /** * @var int */ const TIME_INTERVAL = 4; /** * @var int */ protected $port = 2020; /** * @var array */ protected $options = []; /** * @param SocketIO $socketIO */ public function call(SocketIO $socketIO): void { $socketIO->on('workerStart', function () use ($socketIO) { Timer::add(self::TIME_INTERVAL, function () use ($socketIO) { $socketIO->to('room')->emit('score', [ 'items' => [ [ 'id' => 1, 'message' => 'Hello world' ], ] ]); }); }); $socketIO->on('connection', function ($socket) { $socket->join('room'); }); } }
运行
启动
$ ./vendor/bin/socket start
停止
$ ./vendor/bin/socket stop
状态
$ ./vendor/bin/socket status
贡献
请阅读CONTRIBUTING.md以了解我们的行为准则和向我们提交拉取请求的流程。
版本控制
我们使用SemVer进行版本控制。有关可用版本,请参阅此存储库的标签。
作者
- Efimov Aleksandr - 初始工作 - Sanchescom
有关参与此项目的其他贡献者的列表。
许可协议
本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE.md文件。