Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Yii2使用Yii2节点套接字从php向客户端发送事件_Javascript_Php_Node.js_Sockets_Yii - Fatal编程技术网

Javascript Yii2使用Yii2节点套接字从php向客户端发送事件

Javascript Yii2使用Yii2节点套接字从php向客户端发送事件,javascript,php,node.js,sockets,yii,Javascript,Php,Node.js,Sockets,Yii,我经常在一个混凝土房间里向客户发送事件。我按照所有步骤在我的项目中安装扩展,服务器成功启动,客户端连接到套接字,但当我试图从php代码发送事件时,客户端没有收到任何数据 Javascript代码: var socket = new YiiNodeSocket(); socket.onConnect(function () { socket.room('testRoom').join(function (success, numberOfRoomSubscribers) { // succ

我经常在一个混凝土房间里向客户发送事件。我按照所有步骤在我的项目中安装扩展,服务器成功启动,客户端连接到套接字,但当我试图从php代码发送事件时,客户端没有收到任何数据

Javascript代码:

var socket = new YiiNodeSocket();
socket.onConnect(function () {
socket.room('testRoom').join(function (success, numberOfRoomSubscribers) {
    // success - boolean, numberOfRoomSubscribers - number of room members
    // if error occurred then success = false, and numberOfRoomSubscribers - contains error message
    if (success) {
        console.log(numberOfRoomSubscribers + ' clients in room: testRoom');
        // do something

        // bind events
        this.on('join', function (newMembersCount) {
            // fire on client join
        });

        this.on('data', function (data) {
            // fire when server send frame into this room with 'data' event
            console.log('in data : ', data);
        });
    } else {
        // numberOfRoomSubscribers - error message
        alert(numberOfRoomSubscribers);
    }
});
});
PHP代码:

    // create frame
    $frame = Yii::$app->nodeSocket->getFrameFactory()->createEventFrame();

    // set event name
    $frame->setEventName('data');

    // set room name
    $frame->setRoom('testRoom');

    // set data
    $frame['key'] = 'hello';

    // send
    $frame->send();

你有办法吗?