bonjour à tous,
je suis débutant sur node et socket.io, j'ai créer un petit projet qui fonctionne parfaitement en local mais pas sur Planethoster
Je suis face à un problème lors de l'exécution d'un script simple en Nodejs avec socket.io, je suis pense que cela viens d'une mauvaise configuration du serveur ou du port d'écoute.
Le problème:
La console de la page HTML m'affiche dès le départ:
WebSocket connection to 'ws://nodetest.cyberdyne.agency/socket.io/?EIO=4&transport=websocket&sid=nNlP-YZAm44ABp4XAAAC' failed:
Puis de que j'émets une socket au server (et cela a chaque fois que je fait la requête) pour qu'il me renvois le contenu d'une table mysql je reçoit dans l'ordre:
La 1ere fois que j'envoi la requête je reçoit:
GET http://nodetest.cyberdyne.agency/so...rt=polling&t=OfT3IFk&sid=nNlP-YZAm44ABp4XAAAC 502 (Bad Gateway)
POST http://nodetest.cyberdyne.agency/so...rt=polling&t=OfT3Ii2&sid=nNlP-YZAm44ABp4XAAAC 400 (Bad Request)
websocket.js:43 WebSocket connection to 'ws://nodetest.cyberdyne.agency/socket.io/?EIO=4&transport=websocket&sid=QZ0VeTz3w53Cf7t8AAAA' failed:
La 2eme fois que j'envoi la requête tout ce passe bien
La 3eme fois que j'envoi la requête je reçoit:
GET http://nodetest.cyberdyne.agency/so...rt=polling&t=OfT3IFk&sid=nNlP-YZAm44ABp4XAAAC 502 (Bad Gateway)
POST http://nodetest.cyberdyne.agency/so...rt=polling&t=OfT3Ii2&sid=nNlP-YZAm44ABp4XAAAC 400 (Bad Request)
websocket.js:43 WebSocket connection to 'ws://nodetest.cyberdyne.agency/socket.io/?EIO=4&transport=websocket&sid=QZ0VeTz3w53Cf7t8AAAA' failed:
La 4eme fois que j'envoi la requête tout ce passe bien
et ainsi de suite...
Point d'entrée: server.js
je suis débutant sur node et socket.io, j'ai créer un petit projet qui fonctionne parfaitement en local mais pas sur Planethoster
Je suis face à un problème lors de l'exécution d'un script simple en Nodejs avec socket.io, je suis pense que cela viens d'une mauvaise configuration du serveur ou du port d'écoute.
Le problème:
La console de la page HTML m'affiche dès le départ:
WebSocket connection to 'ws://nodetest.cyberdyne.agency/socket.io/?EIO=4&transport=websocket&sid=nNlP-YZAm44ABp4XAAAC' failed:
Puis de que j'émets une socket au server (et cela a chaque fois que je fait la requête) pour qu'il me renvois le contenu d'une table mysql je reçoit dans l'ordre:
La 1ere fois que j'envoi la requête je reçoit:
GET http://nodetest.cyberdyne.agency/so...rt=polling&t=OfT3IFk&sid=nNlP-YZAm44ABp4XAAAC 502 (Bad Gateway)
POST http://nodetest.cyberdyne.agency/so...rt=polling&t=OfT3Ii2&sid=nNlP-YZAm44ABp4XAAAC 400 (Bad Request)
websocket.js:43 WebSocket connection to 'ws://nodetest.cyberdyne.agency/socket.io/?EIO=4&transport=websocket&sid=QZ0VeTz3w53Cf7t8AAAA' failed:
La 2eme fois que j'envoi la requête tout ce passe bien
La 3eme fois que j'envoi la requête je reçoit:
GET http://nodetest.cyberdyne.agency/so...rt=polling&t=OfT3IFk&sid=nNlP-YZAm44ABp4XAAAC 502 (Bad Gateway)
POST http://nodetest.cyberdyne.agency/so...rt=polling&t=OfT3Ii2&sid=nNlP-YZAm44ABp4XAAAC 400 (Bad Request)
websocket.js:43 WebSocket connection to 'ws://nodetest.cyberdyne.agency/socket.io/?EIO=4&transport=websocket&sid=QZ0VeTz3w53Cf7t8AAAA' failed:
La 4eme fois que j'envoi la requête tout ce passe bien
et ainsi de suite...
Point d'entrée: server.js
JavaScript:
const { Socket } = require('dgram')
const { query } = require('express')
const { listen } = require('express/lib/application')
const app = require('express')()
const server = require('http').createServer(app)
const io = require('socket.io')(server)
const mysql = require("mysql")
const connection = mysql.createConnection({
host: "localhost",
user: "xxxxxxxxxxxx",
password: "xxxxxxxxxxxxxx",
database: "xxxxxxxxxxxxx"
})
const port = process.env.PORT || 4200;
connection.connect((err) => {
if (err) {
console.error("Erreur MySQL :" + err.stack, port)
return
}
console.log('Connection à la DB réussi', port)
})
app.get('/', (req, res) => {
res.sendFile(${__dirname}/public/index.html)
})
io.on('connection', (socket) => {
console.log("Un utilisateur s'est connecté !", port)
socket.on('disconnect', () => {
console.log("Oups, Un utilisateur s'est barré !")
})
socket.on('chat_message', (msg) => {
console.log('Message recu:'+msg, port)
db_query = "SELECT * FROM teams"
connection.query(db_query, (err, rows, field) => {
if (err) throw err
data = rows
io.emit('server_message', data)
})
connection.end()
})
})
server.listen(port, () => {
console.log('Ecoute en cours sur le port ', port)
})
HTML:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta data-fr-http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Socket-Chat</title>
</head>
<button onclick="emitt()">emitt</button>
<body>
test
<script src="/socket.io/socket.io.js"></script>
<script>
let socket = io()
function emitt() {
socket.emit('chat_message', 'mbonjourr')
}
socket.on('server_message', (msg) => {
console.log(msg)
})
</script>
</body>
</html>