как поделиться и установить глобальную переменную через обработчики сокетов в phpsocket.io - PullRequest
0 голосов
/ 16 января 2019

Я новичок в сокетах и ​​использую socket.io для него, чтобы внедрить систему обмена сообщениями в моем приложении ... socket.io отлично работает с nodejs, но я пытаюсь использовать его с php и использовать для него генератор событий phpsocket.io .. он работает нормально, я могу отправлять и получать события, но единственная проблема в том, что я не могу поделиться и установить глобальную переменную через обработчики сокетов. это дает мне ошибку неопределенной переменной user_id.

phpsocket.io

<?php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
use PHPSocketIO\SocketIO;


global $user_id;  //variable in which i will store some value

$io = new SocketIO(2021);

$io->on('connection', function($socket)use($io){
  echo "new Connection connected\n";



$socket->on('join',function($data) use($socket){

  $socket->join($data['email']);
  echo "room Joined ".$data['email']."\n";
});

$socket->on('chat message',function($data) use($io){
  $io->in($data['email'])->emit('chat message',array('msg'=>$data['msg']));
});

$socket->on("online users",function($data)use($socket){
 $user_id = $data['userId'];  //here i store a value in variable
});


 $socket->on('disconnect', function () use($socket) {
echo "disconnected ";
echo $user_id;  //here when i try to use the variable it is giving me warning 
                // of undefined variable  
 });

  });
  Worker::runAll();
 ?>
...