$ conn-> WebSocket всегда возвращает ["закрытие"] => bool (false)

Я пытаюсь использовать Ratchet с laravel, но когда я делаю var_dump в $ conn-> WebSocket в onOpen или onMessage, он всегда возвращает меня

object(stdClass)#670 (1) { ["closing"]=> bool(false) }

это код, который я использую

namespace App\Http\Controllers;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
use App;
use Auth;
use Config;
use Crypt;
use App\User;
use Illuminate\Session\SessionManager;

class WebSocketController extends Controller implements MessageComponentInterface{
function onOpen(ConnectionInterface $conn){
$session = (new SessionManager(App::getInstance()))->driver();
var_dump($conn->WebSocket);
}

function onClose(ConnectionInterface $conn){
}

function onError(ConnectionInterface $conn, \Exception $e){
$conn->close();
}

function onMessage(ConnectionInterface $conn, $msg){
var_dump($conn->WebSocket);
}
}

Вы нашли время, чтобы обдумать мой ответ?

Mcsky 12.09.2018 16:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
81
1

Ответы 1

Я предлагаю вам простую библиотеку под названием Woketo для веб-сокета на php

composer require "nekland/woketo"

Самый простой пример запуска сервера websocket

Ваш веб-сервер

use Your\Namespace\YourMessageHandler;
use Nekland\Woketo\Server\WebSocketServer;

$server = new WebSocketServer(1337);
$server->setMessageHandler(new YourMessageHandler(), '/path'); // accessible on ws://127.0.0.1:1337/path
$server->start();

Ваш класс Handler, здесь вы можете получать и отправлять данные от / к вашему клиенту

 <?php
    // YourMessageHandler.php

    namespace Your\Namespace;

    use Nekland\Woketo\Core\AbstractConnection;
    use Nekland\Woketo\Message\TextMessageHandler;

    class YourMessageHandler extends TextMessageHandler
    {
        public function onConnection(AbstractConnection $connection)
        {
            // Doing something when the client is connected ?
            // This method is totally optional.
        }

        public function onMessage(string $data, AbstractConnection $connection)
        {
            // Print the message received from the connection
            var_dump($data);
            // Sending back the received data
            $connection->write($data);
        }
    }

Не стесняйтесь спрашивать, есть ли у вас проблемы во время настройки

Другие вопросы по теме