如何使用socket.io访问mysql数据库

Gav*_*ers 6 mysql serverside-javascript node.js socket.io

我刚刚开始编写服务器端 javascript,并且一直在阅读有关 socket.io 和 node.js 的教程,但我没有遇到任何演示如何使用 node.js 访问 mysql 数据库的内容。

比如说我想创建一个方法来监听我在 mysql.something.com 的数据库中的一个表(使用数据库:数据库,用户名:用户名等),我将如何使用 node.js 连接到 socket.io该数据库并侦听该表的新输入,然后返回该输入?

我想知道是否有人可以给我一个使用发布订阅模型的具体示例。

谢谢您的帮助。

az7*_*7ar 2

您必须定期轮询 mysql 数据库以了解更改,并在检测到更改时发出 socket.io 事件。这是一个伪代码

var mysql = require('mysql');
var connect = mysql.createConnection({
      host: 'localhost'
    , database: 'your_database'
    , username: 'user'
    , password: 'password'});

var initial_result;

// check for changes after 1 second

setTimeout(function(){

    connect.query('select * from your_table', function(err, result) {
        if(err) { throw new Error('Failed');}
        initial_result = initial_result || result;

        if(Changed(initial_result, result)) { socket.emit('changed', result); }

    });

    function Changed(pre, now) {
  // return true if pre != now
    }


}, 1000); 
Run Code Online (Sandbox Code Playgroud)

  • 感谢您提供的示例,但我正在寻找更多使用发布订阅模型而不是轮询模型的东西。 (4认同)