BG Development


Страници: (2) 1 [2]   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Ratchet send a message to the clients on X seconds
relax4o
Публикувано на: 11-12-2017, 15:59
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1374
Регистриран на: 04.04.07



QUOTE (sly_one @ 11-12-2017, 15:55)
QUOTE (relax4o @ 11-12-2017, 15:45)
А от къде по-точно взимаш $clients в анонимната функция? Нещо логиката не ми се завърта тука.

П.П. Опитай така:

CODE

$loop->addPeriodicTimer(5, function () use ($clients, $dataPacket){
   echo 'periodic timer';
    $this->sendDataToClients($clients, $dataPacket);
});

Опитах и с use ($clients, $dataPacket, &$i), както казваш, но отново не ми се изпълнява таймера, т.е. нито принти, нито изпраща до клиентите $dataPacket.

Дъмпни си променливите и самата функция отделно, да видиш дали работи правилно. Също не съм сигурен дали $this ти работи правилно в анонимната функция, дъпни и нея променлива.

Също опитай да добавиш и $this в use.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
sly_one
Публикувано на: 11-12-2017, 16:14
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 167
Регистриран на: 24.10.11



Променливите изглеждат ок като ги var_dump(), но таймера само принти periodic timer periodic timer periodic timer periodic timer. Не изпраща нито едно съобщение до клеинта.
PMEmail Poster
Top
relax4o
Публикувано на: 11-12-2017, 16:44
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1374
Регистриран на: 04.04.07



Добави един var_dump с някакво рандом съобщение в sendDataToClients() да видиш въобще дали се изпълнява.

Добави ли $this в use() - use($this, $clients, $dataPacket) ?


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
sly_one
Публикувано на: 11-12-2017, 16:54
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 167
Регистриран на: 24.10.11



var_dump с някакво рандом съобщение в sendDataToClients() съобщението се показва, не ми дава да добавя $this в /прикачам картинка/

CODE

function () use ($this, $clients, $dataPacket){
           //echo 'periodic timer ';
           $this->sendDataToClients($clients, $dataPacket);
       });


Прикачена картинка (Кликнете на картинката, за да я увеличите!)
Прикачена картинка
PMEmail Poster
Top
relax4o
Публикувано на: 11-12-2017, 16:59
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1374
Регистриран на: 04.04.07



До сега не съм използвал Ratchet и това което си дал не е много подробно. Общо взето си показал твоите методи, а какво се случва във всеки един от тях, не е ясно.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
sly_one
Публикувано на: 11-12-2017, 17:03
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 167
Регистриран на: 24.10.11



Ок ще дам по-подробен код:

CODE

  public function sendDataToClients($clients, $message)
   {
       var_dump('malko random');

       foreach ($clients as $client) {
           $this->sendData($client, $message);
       }
   }

 public function sendData(ConnectedClientInterface $conn, $data)
   {
       $conn->getConnection()->send(json_encode($data));
   }

PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) 1 [2]  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0