定制 soleon/sc-php 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

soleon/sc-php

最新稳定版本:v1.0.2

Composer 安装命令:

composer require soleon/sc-php

包简介

SocketCluster - PHP library for interacting with the SocketCluster.io

README 文档

README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version License

PHP library for interacting with the SocketCluster.io

It's an unofficial client php for SocketCluster (Is an open source realtime WebSocket framework for Node.js from socketcluster.io for PHP 5.5.9+).

Contents

Installation

You can install this package by simply run this composer command:

composer require soleon/sc-php

Usage Basic

$optionsOrUri = 'wss://localhost:443/socketcluster/?servicekey=abc'

OR

$optionsOrUri = [
  'secure' => true,
  'host' => 'localhost',
  'port' => '443',
  'path' => '/socketcluster/',
  'query' => [
    'servicekey' => 'abc'
  ],
];

$websocket = \SocketCluster\WebSocket::factory($optionsOrUri);
$socket = new \SocketCluster\SocketCluster($websocket);

// Event Emit
$data = ['message' => 'FooBar'];
$socket->publish('CHANNEL_NAME', $data);

Integrations

Laravel Framework

Then, add this service provider in your providers array [app/config/app.php]:

SocketCluster\Providers\LaravelServiceProvider::class,

Then, add this Facade to your aliases array [app/config/app.php]:

'SocketCluster' => SocketCluster\Laravel\SCFacade::class

Next you have to copy the configuration to your connections array [app/config/broadcasting.php]:

/*
 * Set default broadcasting driver to socketcluster
 */
'default' => env('BROADCAST_DRIVER', 'socketcluster'),

'socketcluster' => [
    'driver' => 'socketcluster',
    'options' => [
      'secure' => true,
      'host' => 'localhost',
      'port' => '443',
      'path' => '/socketcluster/',
      'query' => [],
    ],
]

Usage Laravel

  • With Facade
SocketCluster::publish('ChannelName', ['message' => 'Test publish!!']);

With Event Listener

Add a custom broadcast event to your application example [app/events/PublishToSocketClusterEvent.php]:

namespace App\Events;

use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class PublishToSocketClusterEvent implements ShouldBroadcast
{
    use SerializesModels

    /**
     * Content Message
     * @var string
     */
    public $message;

    /**
     * Construct Event
     * @param string $message
     */
    public function __construct($message)
    {
        $this->message = $message;
    }

    /**
     * Get the channels the event should broadcast on.
     * @return array
     */
    public function broadcastOn()
    {
        return ['channelName'];
    }

    /**
     * Get the data to send.
     * @return array
     */
    public function broadcastWith()
    {
      return [
        'message' => $this->message
      ]
    }
}

Now to publish in your application simply fire the event:

event(new App\Events\PublishToSocketClusterEvent('Test publish!!'));

Pimple

Pimple is a simple PHP Dependency Injection Container

Examples of frameworks that use: Silex, Slim

Registering this service provider

$app->register(new SocketCluster\Providers\PimpleServiceProvider(), array(
    'socketcluster.options' => array(
      'secure' => true,
      'host' => 'localhost',
      'port' => '443',
      'path' => '/socketcluster/',
      'query' => [],
    )
));

Usage Pimple

$app['socketcluster']->publish('CHANNEL_NAME', $data);

Contribution

Support follows PSR-2 and PSR-4 PHP coding standards, and semantic versioning. Fork this project and make a pull request!

License

This project is free software distributed under the terms of the MIT License.

统计信息

  • 总下载量: 30.77k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 16
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 15
  • Watchers: 2
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-07-06