【问题标题】:how to emit data from mysql server to node.js socket.io如何将数据从 mysql 服务器发送到 node.js socket.io
【发布时间】:2021-03-20 00:50:57
【问题描述】:

所以我现在已经把头撞到墙上了,我试图从 @rodrigogs/my-sql 事件节点包中监听事件,并通过 socket-io 将这些事件发送到反应客户端.

但是,在从 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 已连接两者..​​....而且两者似乎都工作得很好......我完全不知道如何让它们一起工作。



【问题讨论】:

    标签: javascript mysql node.js socket.io mysql-event


    【解决方案1】:

    我是盲人,在码头的任何地方都找不到这个,但你可以通过服务器的通用 io 访问发射...定义如下:

    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)
      
    }
    
    

    【讨论】:

      猜你喜欢
      • 2012-12-31
      • 2013-01-03
      • 1970-01-01
      • 2021-09-05
      • 2014-07-27
      • 2017-07-12
      • 2021-01-26
      • 1970-01-01
      • 2020-09-03
      相关资源
      最近更新 更多