2016-03-12 1 views
1

Я использую Yii2 и socket.io для отправки уведомлений. У меня есть файл client.js, который должен испускать идентификатор вновь подключенного пользователя к серверу. код отвечает за это в моем client.js является:Как передать атрибут модели Yii2 для jQuery socket.io?

socket.emit('AddId', '<?php $model->id ?>');//of course it does not work but I need smth like this. 

Так как передать модель Yii2 атрибуту Socket.io client.js?

Client.js код:

$(document).ready(function() { 

    var socket = io.connect('http://localhost:8890'); 

    socket.emit('AddId', '<?php $model->id ?>'); 

}); 

ответ

0

Если вы хотите отправить информацию о пользователе вы могли бы сделать этот путь

$(document).ready(function() { 

    var socket = io.connect('http://localhost:8890'); 

    socket.emit('AddId', '<?php echo Yii::$app->user->id ?>'); 

}); 
+0

Я попытался, как вы предложили, но это, кажется, код PHP does't хотите выполнить. В командной строке у меня есть: подключен новый клиент новый клиент Добавлен в список КЛИЕНТОВ – Dmytro

+0

Я также попытался выполнить , но без успеха. В чем может быть проблема? – Dmytro

+0

Ваш файл .is namefile.php? – scaisEdge

0

В Yii2 внутри мой взгляд index.php я писал:

$test = 'My text';//here could be any text data, model attributes etc 
<script> 
    var test = "<?php echo $test ?>"; 
</script> 

После этого обновления я смог использовать переменную (var test) в своем уведомлении.js. notification.js добавляется также AppAsset.php следующим образом:

public $js = [ 
     'js/notification.js' 
     ]; 

notification.js файла:

$(document).ready(function() { 

    var socket = io.connect('http://localhost:8890'); 

    socket.emit('AddId', test);//test is a variable (var test) from index.php file 

});