sanchescom/laravel-phpsocket.io

0.1.7 2019-03-20 13:24 UTC

This package is auto-updated.

Last update: 2024-09-28 07:32:06 UTC


README

Build Status codecov Maintainability StyleCI Quality Score

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进行版本控制。有关可用版本,请参阅此存储库的标签

作者

有关参与此项目的其他贡献者的列表。

许可协议

本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE.md文件。