Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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 如何将数据从mysql服务器发送到node.js socket.io_Javascript_Mysql_Node.js_Socket.io_Mysql Event - Fatal编程技术网

Javascript 如何将数据从mysql服务器发送到node.js socket.io

Javascript 如何将数据从mysql服务器发送到node.js socket.io,javascript,mysql,node.js,socket.io,mysql-event,Javascript,Mysql,Node.js,Socket.io,Mysql Event,因此,我已经把头撞到墙上有一段时间了,我试图监听@rodrigos/mysqlevents节点包中的事件,并通过socketio将这些事件发送到react客户端 然而,在从mysql获取数据和将数据发送到客户端之间似乎存在一个我无法纠正的脱节 const con = mysql.createConnection({ host : 'not local host', user : 'user', password : 'pw', database : 'dbname

因此,我已经把头撞到墙上有一段时间了,我试图监听@rodrigos/mysqlevents节点包中的事件,并通过socketio将这些事件发送到react客户端

然而,在从mysql获取数据和将数据发送到客户端之间似乎存在一个我无法纠正的脱节

const con = mysql.createConnection({
  host     : 'not local host',
  user     : 'user',
  password : 'pw',
  database : 'dbname',
  port:mysqlport
});
const myInstance = new MySQLEvents(con, {});
myInstance.start()
  .then(() => console.log('I\'m running!'))
  .catch(err => console.error('Something bad happened', err));

  myInstance.addTrigger({
    name: 'trigger1',
    expression: 'dbname.table',
    statement: MySQLEvents.STATEMENTS.ALL,
    onEvent: async (event) => {
      //socket socketio io .emit any variation of those doesn't work
        emitAnEvent(event);// current attempt      
      },

emitAnEvent确实是公正的,但应该是


function emitAnEvent(event){
   // socket is undefined, io nor socketio work.
  socketio.emit("rowUpdate",event.data)
}
我正在尝试这个函数发送想法,因为如果我将这些块中的任何一个嵌套在彼此内部,就会发生可怕的悲伤,我不知道如何访问io.on('conneciton')范围外的套接字


io.on("connection", (socket) => {
    console.log("Client connected");
    
    socket.on("hydrateReq",()=>{
      console.log("hydrate request heard");
      socket.emit("hydrate", hydrateStore());
      })

    socket.emit("handshake","connected to backend");


});

如果每次有更新时我都尝试建立一个新的连接……那么,你可以猜到它的效果有多好

所以

这两件事是如何协同工作的?如何通过socket.io发送mysql事件?是否有最佳实践?或者显然是我缺少的干净的处理方法

我已经确认mysql是连接的,socket io是连接两者的…而且两者似乎都工作得很好…我完全不知道如何让它们一起工作




我是盲人,在码头的任何地方都找不到,但您可以通过服务器的常规io访问emit…定义如下:

const socketio = require('socket.io');

 const io = socketio(server, {   cors: {
      origin: "*",
      methods: ["GET", "POST"],
      credentials: true
    }});



function emitAnEvent(event){
  console.log(event);//io.emit is defined and the point I was looking for...
  io.emit("rowUpdate",event)
  
}


我是盲人,在码头的任何地方都找不到,但您可以通过服务器的常规io访问emit…定义如下:

const socketio = require('socket.io');

 const io = socketio(server, {   cors: {
      origin: "*",
      methods: ["GET", "POST"],
      credentials: true
    }});



function emitAnEvent(event){
  console.log(event);//io.emit is defined and the point I was looking for...
  io.emit("rowUpdate",event)
  
}