使用socket.io通过套接字连接到mysql数据库时出错

贝基

我试图连接到节点内的mysql数据库,并且每次添加新记录时都想创建一个套接字(使用socket.io),但是出现以下错误。

错误:在TCPConnectWrap.afterConnect上连接ECONNREFUSED 139.0.0.1:3306 [完成时](node:net:1133:16)

我是socket.io的新手,因此正在尝试在线示例中的代码以了解其工作原理。

这是我的代码

const app = require('http').createServer().listen(8000);
const mysql = require('mysql');
const io = require('socket.io')(app);

const db = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'ExampleLogin'
});

 db.connect((err) => {
     if(err) console.log(err);
     console.log("Connected Successfully To The Database");
});

//db.connect();

console.log('Server running on port 8000');

const prev_id = 0;

io.sockets.on('connection', (socket) => {
    socket.emit('greeting', 'Hello');
    socket.on('check_podcast', (data) => {
        const uid = data['uid'];
        const query = "SELECT * FROM podcastTable WHERE id =" +uid;
        connection.query(query, (err, rows, fields) => {
            if (err) throw err;
            if(rows[0].id > prev_id) {
                socket.emit('new_podcast', rows[0]);
                prev_id = rows[0].id;
            }
        });
    });
    db.end();
});

当我运行代码时,在终端中得到以下输出

错误

我可以看到2个问题

  1. 您的数据库服务器拒绝连接
  2. 查询对象无效。

首先,请检查您的MySQL凭据是否正确,MySQL是否正在运行,是否允许您的用户从指定的主机名进行连接?

然后上述问题解决后,下一个问题是“ connection.query”,

io.sockets.on('connection', (socket){

在上面的实时“连接”中是一个事件,它与MySQL查询无关。

您的查询应该是

db.query(query, (err, rows, fields) => {

'db'对象保存MySQL的连接信息。

这是服务器端和客户端的完整工作代码

// server.js
const HTTP = require('http');
const mysql = require('mysql');
server = HTTP.createServer();
var io = require('socket.io')(server,{
    pingInterval: 5000,
    pingTimeout: 2500,
    cookie: false
});
server.listen(8080);

var MySQLConnection = mysql.createConnection({
    host: "localhost",
    user: "yourusername",
    password: "yourpassword",
    database: "mydb"
});

MySQLConnection.connect(function(err) {
    if (err) {
        console.log('MySQL COnnection Error --> ' + err);
    }
    else{
        console.log("MySQL Connected Successfully");
    }
});

io.on('connection',function(socket){
    socket.emit('greeting', 'Hello');
    socket.on('checkUser', (data) => {
        const email = data['email'];
        const query = "SELECT * FROM table1 WHERE email ='" +email+"'";
        MySQLConnection.query(query, (err, result, fields) => {
            if (err) {
                console.log('MySQL Query Error --> '+ err);
            }
            else{
                console.log(result);
            }
        });
    });
});

这是客户

<!-- client.html -->
<script src="http://SERVERIP:8080/socket.io/socket.io.js"></script>
<script>
var socket = io('http://SERVERIP:8080', {
    transports: [ 'websocket' ],
    'reconnection': true,
    'reconnectionDelay': 500,
    'reconnectionDelayMax': 1000,
    'reconnectionAttempts': 100
});

socket.on('connect', onConnect);
socket.on('greeting', onGreeting);


function onConnect(){
    console.log('Connected Successully...'); 
}
function onGreeting(DATA){
    console.log('onGreeting --> DATA --> ' + DATA); 
    var sendData = {
        email: '[email protected]'
    }
    socket.emit('checkUser',sendData);
}

</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用休眠连接到数据库时出错

来自分类Dev

使用代理通过PDO连接到mysql数据库

来自分类Dev

使用aiosqlite python库连接到数据库时出错

来自分类Dev

使用Sequelize连接到SQL Server数据库时出错

来自分类Dev

使用JSP在tomcat服务器中连接到Oracle数据库时出错

来自分类Dev

使用标准Web套接字客户端连接到Socket.io服务器

来自分类Dev

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

来自分类Dev

通过PHP连接到使用cpanel创建的MySQL数据库

来自分类Dev

如何使用Play Framework通过SSL连接到远程MySQL数据库?

来自分类Dev

使用存储的凭据通过dplyr连接到MySQL数据库

来自分类Dev

Node JS&Socket.io建议-通过路由或通过套接字将信息发布到数据库是否更好?

来自分类Dev

使用 socket.io 创建多个套接字时的 ENOBUFS

来自分类Dev

使用RubyMine通过Vagrant连接到数据库

来自分类Dev

我可以使用什么来唯一标识使用Socket.IO连接到套接字的设备吗?

来自分类Dev

尝试使用Eclipse连接到MySql数据库时Ping失败

来自分类Dev

尝试使用Eclipse连接到MySql数据库时Ping失败

来自分类Dev

使用mysql.connector for python连接数据库时出错

来自分类Dev

socket.io - 客户端通过同一服务器连接到两个套接字

来自分类Dev

使用mysqldriver连接数据库时出错

来自分类Dev

使用实体框架连接数据库时出错

来自分类Dev

使用nodejs连接到Postgres数据库时出错,导致pg.js“不支持方言postgres”

来自分类Dev

无法使用MySQLConnection连接到MySQL数据库

来自分类Dev

使用HTTPS URL连接到远程mysql数据库

来自分类Dev

使用Lua连接到MySQL数据库

来自分类Dev

如何使用Erlang,Yaws连接到mysql数据库

来自分类Dev

使用MySQLWorkbench无法连接到(远程)MySQL数据库

来自分类Dev

使用节点连接到远程mysql数据库

来自分类Dev

使用php连接到特定的数据库(xampp / mysql)

来自分类Dev

使用C#连接到MYSQL数据库

Related 相关文章

  1. 1

    使用休眠连接到数据库时出错

  2. 2

    使用代理通过PDO连接到mysql数据库

  3. 3

    使用aiosqlite python库连接到数据库时出错

  4. 4

    使用Sequelize连接到SQL Server数据库时出错

  5. 5

    使用JSP在tomcat服务器中连接到Oracle数据库时出错

  6. 6

    使用标准Web套接字客户端连接到Socket.io服务器

  7. 7

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

  8. 8

    通过PHP连接到使用cpanel创建的MySQL数据库

  9. 9

    如何使用Play Framework通过SSL连接到远程MySQL数据库?

  10. 10

    使用存储的凭据通过dplyr连接到MySQL数据库

  11. 11

    Node JS&Socket.io建议-通过路由或通过套接字将信息发布到数据库是否更好?

  12. 12

    使用 socket.io 创建多个套接字时的 ENOBUFS

  13. 13

    使用RubyMine通过Vagrant连接到数据库

  14. 14

    我可以使用什么来唯一标识使用Socket.IO连接到套接字的设备吗?

  15. 15

    尝试使用Eclipse连接到MySql数据库时Ping失败

  16. 16

    尝试使用Eclipse连接到MySql数据库时Ping失败

  17. 17

    使用mysql.connector for python连接数据库时出错

  18. 18

    socket.io - 客户端通过同一服务器连接到两个套接字

  19. 19

    使用mysqldriver连接数据库时出错

  20. 20

    使用实体框架连接数据库时出错

  21. 21

    使用nodejs连接到Postgres数据库时出错,导致pg.js“不支持方言postgres”

  22. 22

    无法使用MySQLConnection连接到MySQL数据库

  23. 23

    使用HTTPS URL连接到远程mysql数据库

  24. 24

    使用Lua连接到MySQL数据库

  25. 25

    如何使用Erlang,Yaws连接到mysql数据库

  26. 26

    使用MySQLWorkbench无法连接到(远程)MySQL数据库

  27. 27

    使用节点连接到远程mysql数据库

  28. 28

    使用php连接到特定的数据库(xampp / mysql)

  29. 29

    使用C#连接到MYSQL数据库

热门标签

归档