Intereting Posts
Kohana 3.1 – Система не загружает модуль электронной почты PHP & MYSQL: использование группы по категориям Выберите победителей лотерейных билетов Отправить кнопку не будет показывать результат одним щелчком мыши, это покажет его вторым кликом redbean – вложенные бобы – что происходит не так? Вызов программы через shell_exec с использованием ввода текста utf-8 Работа с пространством имен Zend Session для нескольких запросов Изменение значения строки PHP на основе проверки состояния с помощью AJAX Назначение переменных и отображение результатов AFNetworking 2.0 POST, ошибка Cocoa 3840 (текст JSON не начинался с массива …) seeInField находит элемент, а fillField – не CodeCeption codeigniter – использование помощника в контроллере не работает Сортировка массива массива объектов в PHP по значению ключа удалите новую строку при отправке запроса на сервер через Ajax Post с помощью JQuery PHPExcel Sumif и Skip

WebSocket с Laravel 5.2

Я делаю приложение в Laravel 5.2, которое использует websockets. Для подключения к websocket я использую HoaServer , который работает очень хорошо.

Плохая часть, я не знаю, как сделать этот сервер контроллером или, по крайней мере, иметь доступ к моим моделям, прямо сейчас я использую разделенное PDO-соединение для создания запросов БД.

Кто-то знает, можно ли сделать этот сервер в качестве контроллера или, по крайней мере, иметь доступ к базе данных через larvel-модели?

Мой сервер прямо сейчас:

require_once(__DIR__.'/../vendor/autoload.php'); $PDO = new PDO('mysql:host=127.0.0.1:3306;dbname=DBNAME', "USER", "PASS"); $websocket = new Hoa\Websocket\Server(new Hoa\Socket\Server('ws://'.$ip.':'.$porta)); $websocket->on('open', function (Hoa\Event\Bucket $bucket) { return; }); $websocket->on('message', function (Hoa\Event\Bucket $bucket) { return; }); $websocket->on('close', function (Hoa\Event\Bucket $bucket) { return; }); $websocket->run(); 

Самое близкое, что я увлекаюсь , должен был запустить событие laravel , которое я не знаю, как это сделать. : /

 //Socket server message event $server->on('message', function() { //Fire your Laravel Event here }); 

Я думаю, что вам нужно создать консольную команду.

 php artisan make:console StartSocketServer --command=socket:start 

а затем вы редактируете сгенерированный класс следующим образом

 <?php namespace App\Console\Commands; use Illuminate\Console\Command; class StartSocketServer extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'socket:start'; /** * The console command description. * * @var string */ protected $description = 'start the socket server'; /** * Create a new command instance. */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() { $websocket = new Hoa\Websocket\Server(new Hoa\Socket\Server('ws://'.$ip.':'.$porta)); $websocket->on('open', function (Hoa\Event\Bucket $bucket) { return; }); $websocket->on('message', function (Hoa\Event\Bucket $bucket) { return; }); $websocket->on('close', function (Hoa\Event\Bucket $bucket) { return; }); $websocket->run(); } } 

Наконец, после регистрации команды в App\Console\Kernel вы можете запустить php artisan socket:start с вашего терминала.

Я никогда не использовал HoaServer, но я думаю, что это должно сработать.