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. DB 서버가 연결을 거부하고 있습니다.
  2. 쿼리 개체가 유효하지 않습니다.

먼저 MySQL 자격 증명이 올바른지, MySQL이 실행 중인지 확인하십시오. 사용자가 지정된 호스트 이름에서 연결할 수 있습니까?

위의 문제가 해결되면 다음 문제는 "connection.query"입니다.

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

위의 라이브 "연결"에서 이벤트는 MySQL 쿼리와 관련이 없습니다.

귀하의 쿼리는

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

'db'Object는 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

javafx를 사용하여 mysql 데이터베이스에 데이터를 삽입 할 때 오류 발생

분류에서Dev

mysql.connector for python을 사용하여 데이터베이스에 연결할 때 오류 발생

분류에서Dev

mysqli_connect ()를 사용하여 데이터베이스에 연결하려고 할 때 PHP 오류 찾기

분류에서Dev

JDBC를 사용하여 원격 MySQL (호스트 게이터) 서버에 연결할 때 오류 발생

분류에서Dev

PowerBuilder를 사용하여 데이터베이스 연결을 테스트 할 때 오류 메시지

분류에서Dev

JSP 페이지를 로컬 MySQL 데이터베이스에 연결할 때 발생하는 문제 : 잘못된 데이터베이스 이름

분류에서Dev

HttpClient를 사용하여 GET으로 WebApi에 연결할 때 404 오류

분류에서Dev

Play 애플리케이션을 mysql 데이터베이스에 연결하려고 할 때 SQL 구문 오류

분류에서Dev

Restify : 파일을 복사하고 promise 체인을 사용하여 데이터베이스를 쿼리 할 때 소켓 중단 오류

분류에서Dev

소켓 연결 데이터를 자동으로 업데이트 하시겠습니까? socket.io

분류에서Dev

mysql 5.5로 연결 플레이를 시도 할 때 오류

분류에서Dev

Pandas 및 SQLAlchemy를 사용하여 데이터베이스에서 가져 오려고 할 때 오류 발생

분류에서Dev

PHP를 사용하여 mysql 데이터베이스에 데이터를 삽입 할 때 발생하는 문제

분류에서Dev

PHP를 사용하여 MYSQL 데이터베이스에 데이터를 삽입 할 때 발생하는 문제

분류에서Dev

iframe에서 연결할 때 socket.io 오류

분류에서Dev

PHP를 사용하여 MySQL 데이터베이스에 액세스 할 때 연결을 열어 둘 수 있습니까?

분류에서Dev

데이터베이스에서 데이터를 선택할 때 MySQL 쿼리 오류

분류에서Dev

socket.io로 mysql 데이터베이스에 액세스하는 방법

분류에서Dev

.docx를 데이터베이스에 업로드 할 때 오류 발생

분류에서Dev

Android, socket.io, 핸드 쉐이킹 중 오류, nodejs 서버에 연결할 때

분류에서Dev

응용 프로그램의 서버 오류-데이터베이스에 이미지를 추가하려고 할 때 리소스를 찾을 수 없습니다.

분류에서Dev

pyodbc를 사용하여 로컬 SQL 서버에 연결할 때 로그인 시간 초과 만료 오류

분류에서Dev

ODBC 및 VB 프로젝트를 사용하여 데이터베이스에 연결할 때 발생하는 문제

분류에서Dev

PDO PHP로 MySQL 데이터베이스를 쿼리 할 때 혼란스러운 오류

분류에서Dev

PHP insert.php를 사용하여 mysql에 데이터를 삽입 할 때 오류 발생

분류에서Dev

OleDbConnection을 사용하여 Access 데이터베이스에 데이터를 제출할 때 C #에서 "INSERT INTO 문의 구문 오류"디버그

분류에서Dev

Doctrine 2 CLI를 사용하여 vagrant (scotchbox) 데이터베이스에 연결할 때 발생하는 문제

분류에서Dev

데이터베이스에 유지하려고 할 때 MySQL 오류-Symfony2-가능한 날짜 오류?

분류에서Dev

Socket.IO로 소켓에 연결하는 장치를 고유하게 식별하는 데 사용할 수있는 것이 있습니까?

Related 관련 기사

  1. 1

    javafx를 사용하여 mysql 데이터베이스에 데이터를 삽입 할 때 오류 발생

  2. 2

    mysql.connector for python을 사용하여 데이터베이스에 연결할 때 오류 발생

  3. 3

    mysqli_connect ()를 사용하여 데이터베이스에 연결하려고 할 때 PHP 오류 찾기

  4. 4

    JDBC를 사용하여 원격 MySQL (호스트 게이터) 서버에 연결할 때 오류 발생

  5. 5

    PowerBuilder를 사용하여 데이터베이스 연결을 테스트 할 때 오류 메시지

  6. 6

    JSP 페이지를 로컬 MySQL 데이터베이스에 연결할 때 발생하는 문제 : 잘못된 데이터베이스 이름

  7. 7

    HttpClient를 사용하여 GET으로 WebApi에 연결할 때 404 오류

  8. 8

    Play 애플리케이션을 mysql 데이터베이스에 연결하려고 할 때 SQL 구문 오류

  9. 9

    Restify : 파일을 복사하고 promise 체인을 사용하여 데이터베이스를 쿼리 할 때 소켓 중단 오류

  10. 10

    소켓 연결 데이터를 자동으로 업데이트 하시겠습니까? socket.io

  11. 11

    mysql 5.5로 연결 플레이를 시도 할 때 오류

  12. 12

    Pandas 및 SQLAlchemy를 사용하여 데이터베이스에서 가져 오려고 할 때 오류 발생

  13. 13

    PHP를 사용하여 mysql 데이터베이스에 데이터를 삽입 할 때 발생하는 문제

  14. 14

    PHP를 사용하여 MYSQL 데이터베이스에 데이터를 삽입 할 때 발생하는 문제

  15. 15

    iframe에서 연결할 때 socket.io 오류

  16. 16

    PHP를 사용하여 MySQL 데이터베이스에 액세스 할 때 연결을 열어 둘 수 있습니까?

  17. 17

    데이터베이스에서 데이터를 선택할 때 MySQL 쿼리 오류

  18. 18

    socket.io로 mysql 데이터베이스에 액세스하는 방법

  19. 19

    .docx를 데이터베이스에 업로드 할 때 오류 발생

  20. 20

    Android, socket.io, 핸드 쉐이킹 중 오류, nodejs 서버에 연결할 때

  21. 21

    응용 프로그램의 서버 오류-데이터베이스에 이미지를 추가하려고 할 때 리소스를 찾을 수 없습니다.

  22. 22

    pyodbc를 사용하여 로컬 SQL 서버에 연결할 때 로그인 시간 초과 만료 오류

  23. 23

    ODBC 및 VB 프로젝트를 사용하여 데이터베이스에 연결할 때 발생하는 문제

  24. 24

    PDO PHP로 MySQL 데이터베이스를 쿼리 할 때 혼란스러운 오류

  25. 25

    PHP insert.php를 사용하여 mysql에 데이터를 삽입 할 때 오류 발생

  26. 26

    OleDbConnection을 사용하여 Access 데이터베이스에 데이터를 제출할 때 C #에서 "INSERT INTO 문의 구문 오류"디버그

  27. 27

    Doctrine 2 CLI를 사용하여 vagrant (scotchbox) 데이터베이스에 연결할 때 발생하는 문제

  28. 28

    데이터베이스에 유지하려고 할 때 MySQL 오류-Symfony2-가능한 날짜 오류?

  29. 29

    Socket.IO로 소켓에 연결하는 장치를 고유하게 식별하는 데 사용할 수있는 것이 있습니까?

뜨겁다태그

보관