我有一张注册表。注册用户后,我的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写入文件的行。我该怎么办?