Задать вопрос
@MikMik

Почему не видно свойства?

Есть консольный контроллер, весь код не стал выкладывать, думаю суть понятна

class WorkermanWebSocketController extends Controller
{
   public $activeConnections = [];
 
public function initWorker()
   {
      $wsWorker = new Worker("websocket://127.0.0.1:8080");
      $wsWorker->onMessage = function ($connection, $data) {
           // если обратиться тут к $this->activeConnections то все норм и запись и чтение
      }

      $httpWorker = new Worker("http://127.0.0.1:8081");
      $httpWorker->onMessage = function ($connection, $request){
            // а если обратиться к этому свойству тут то получим пустую переменную, даже если в wsWorker туда что-то записали
       }
}


Чет туплю не могу понять почему так (
Видимо из-за того что это разные процессы. Но как тогда устроить обмен между ними?
  • Вопрос задан
  • 115 просмотров
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@Barmunk
может так?

class WorkermanWebSocketController extends Controller
{
   public $activeConnections = [];
 
public function initWorker()
   {
      $connections = $this->activeConnections;

      $wsWorker = new Worker("websocket://127.0.0.1:8080");
      $wsWorker->onMessage = function ($connection, $data) use ($connections) {
           // $connections
      }

      $httpWorker = new Worker("http://127.0.0.1:8081");
      $httpWorker->onMessage = function ($connection, $request) use ($connections) {
           // $connections
       }
}
Ответ написан
@MikMik Автор вопроса
Вопрос снимается. Копаю в сторону Redis.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы