事件触发后,从Yii2后端发出socket.io事件

时间:2019-08-21 08:18:45

标签: php node.js events socket.io yii2

我有一张注册表。注册用户后,我的EVENT_AFTER_SIGNUP事件将开始工作。它具有一个附加的功能,称为notificationEvent。我还在该页面的某个端口上监听了socket.io,因此在我的notificationEvent内,我想发出一个socket.io事件。是否有可能做到这一点?如果是,我该如何实现? 我正在考虑使用PHP创建一个包含发射代码的文本文件,并创建一个express事件,侦听该文本文件的更改,如果更改,则发出其内容。

更新

触发notificationEvent后,我将用户的姓名和姓氏写在文本文件中,如下所示:

public function notificationEvent($event){

        $name = $event->sender->attributes['name'];
        $surname = $event->sender->attributes['surname'];
        $full = $name . " " . $surname . "\n";

        $sheet = fopen("../eventSheet", "a");
        fwrite($sheet, $full);
        fclose($sheet);
    }

在我的Node JS代码中,我正在寻找该文本文件中的更改,如下所示:

var app = require('express')();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
const fs = require('fs');

io.on('connection', function(socket){
    console.log('CONNECTED');

    fs.watch('../eventSheet',(curr, prev) =>{
        console.log(curr);
        console.log(prev)
    });

});

server.listen(3000);

控制台日志记录curr给我change,控制台日志记录prev给我EventSheet,这是我的文本文件的名称。我想获取已用PHP写入文件的行。我该怎么办?

0 个答案:

没有答案
相关问题