В моем приложении laravel 5.7 я установил cboden / ratchet, используя некоторые онлайн-документы
composer.json :
"type": "project",
"require": {
...
"cboden/ratchet": "^0.4.1",
С приложением / Classes / Socket / Base / BaseSocket.php:
<?php
namespace App\Classes\Socket\Base;
use Rachet\MessageComponentInterface;
use Rachet\ConnectionInterface;
class BaseSocket implements MessageComponentInterface {
public function onOpen(ConnectionInterface $conn) {
}
public function onMessage(ConnectionInterface $conn, $mgs) {
}
public function onClose(ConnectionInterface $conn) {
}
public function onError(ConnectionInterface $conn, \Exception $e) {
}
}
и консольюкоманда app / Console / Commands / ChatServer.php:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Ratchet\Http\HttpServer;
use Ratchet\Server\IoServer;
use Ratchet\WebSocket\WsServer;
use App\Classes\Socket\ChatSocket;
class ChatServer extends Command
{
protected $signature = 'chat_server:serve';
protected $description = 'chat_server description';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$this->info("Start server!");
$server= IoServer::factory(
new HttpServer(
new WsServer(
new ChatSocket()
)
),
8080
);
$server->run();
}
}
Но при выполнении команды в консоли я получил ошибку:
$ php artisan chat_server:serve
Start server!
PHP Fatal error: Interface 'Rachet\MessageComponentInterface' not found in /mnt/_work_sdb8/wwwroot/lar/Votes/app/Classes/Socket/Base/BaseSocket.php on line 7
Symfony\Component\Debug\Exception\FatalErrorException : Interface 'Rachet\MessageComponentInterface' not found
at /mnt/_work_sdb8/wwwroot/lar/Votes/app/Classes/Socket/Base/BaseSocket.php:7
3|
4| use Rachet\MessageComponentInterface;
5| use Rachet\ConnectionInterface;
6|
> 7| class BaseSocket implements MessageComponentInterface {
8|
9| public function onOpen(ConnectionInterface $conn) {
10|
11| }
Whoops\Exception\ErrorException : Interface 'Rachet\MessageComponentInterface' not found
at /mnt/_work_sdb8/wwwroot/lar/Votes/app/Classes/Socket/Base/BaseSocket.php:7
3|
4| use Rachet\MessageComponentInterface;
5| use Rachet\ConnectionInterface;
6|
> 7| class BaseSocket implements MessageComponentInterface {
8|
9| public function onOpen(ConnectionInterface $conn) {
10|
11| }
Я пропустил некоторые объявления или мне нужно добавить объявления вapp.php?Чтение документов, которые я пропустил, если у меня есть объявления конфигурации?
ОБНОВЛЕННЫЙ БЛОК № 2:
В поисках решения я нашел мнение, что мне нужно создать свой собственный сервиспровайдер для него правильно зарегистрируйте его в Laravel Какие шаги я должен сделать, чтобы создать свой собственный провайдер услуг для "cboden / ratchet"?Это вне моего опыта Laravel ...
Спасибо!