Je débute ce cours qui me semble clair, pourtant une première ombre apparaît, je cite :
"Si vous savez ce que vous cherchez, le site web de NPM vous permet de faire une recherche. Mais NPM, c'est avant tout une commande ! Vous pouvez faire une recherche dans la console, comme ceci :
var http = require('http');
var fs = require('fs');
// Chargement du fichier index.html affiché au client
var server = http.createServer(function(req, res) {
fs.readFile('./index.html', 'utf-8', function(error, content) {
res.writeHead(200, {"Content-Type": "text/html"});
res.end(content);
});
});
// Chargement de socket.io
var io = require('socket.io').listen(server);
// Quand on client se connecte, on le note dans la console
io.sockets.on('connection', function (socket) {
console.log('Un client est connecté !');
});
server.listen(8080);
La partie html, j'ai essayé d'inclure socket.io pour voir, mais aucun résultat..
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Socket.IO</title>
</head>
<body>
<h1>Socket IO Communication !</h1>
<p><input type="button" value="tryit" id="poke" /></p>
<script src="/socket.io/socket.io.js"></script>
<script>
var io = require('socket.io');
var socket = io.connect('https://artetests-artemix.c9.io:8000/');
socket.on('message', function(message) {
alert('Le serveur a un message pour vous : ' + message);
});
$('#poke').click(function() {
socket.emit('message', 'hello server');
});
</script>
</body>
</html>
mais, j'ai beau charger et recharger la page, impossible d'avoir un retour console.
la console ne m'affiche même pas
info - socket.io started
debug - client authorized
info - handshake authorized Z2E7aqIvOPPqv_XBn421
debug - setting request GET /socket.io/1/websocket/Z2E7aqIvOPPqv_XBn421
debug - set heartbeat interval for client Z2E7aqIvOPPqv_XBn421
debug - client authorized for
debug - websocket writing 1::
Node version 0.10.33
socket.io version 1.2.1
Voici ce que m'affiche la console lorsque je lance le serveur
ps: je travaille sur un workspace c9, mais j'ai aussi testé en local et j'obtiens exactement le même résultat..
Si quelqu'un avait une quelconque solution afin de rendre ce cours fonctionnel chez moi, ou un lien vers un autre site proposant un cours sur socket.io, je suis preneur !
(j'ai cherché d'autres tutoriels, guides et cours sur le web mais ça retombait quasiment toujours ici, ou alors les cours proposés ne correspondaient pas.
J'ai fini le cours et fait tous les quiz et activités, pourtant je me connecte aujourd'hui et je ne suis plus inscrit au cours, je n'ai reçu aucun mail, y a t'il eu un problème ?
Si tu regardes la console du navigateur, côté client, tu verras probablement une erreur du type Uncaught ReferenceError: require is not defined pour la ligne 14 de ton html.
En effet, la fonction require n'est pas présente chez le client. La variable globale io est définie par le script socket.io.js inclus en ligne 12
bonjour j'ai besoin de vous aides svp , comment générer un tableau html et sa structure correspondante en fonction des filtres sélectionnés par le client (en utilisant javascript).
Si tu regardes la console du navigateur, côté client, tu verras probablement une erreur du type Uncaught ReferenceError: require is not defined pour la ligne 14 de ton html.
En effet, la fonction require n'est pas présente chez le client. La variable globale io est définie par le script socket.io.js inclus en ligne 12
Même avec l'include, je n'ai aucune erreur, très étrange...
Une belle mise à niveau pour moi qui n'avais pas encore eu le temps de m'y mettre...
Juste une remarque de méga pinaillage, javascript est bien un langage orienté objet contrairement à ce qui est écrit, il n'est absolument pas structuré comme java ou autre en effet (basé sur les prototypes) mais c'est un langage objet !
j'ai utilisé javascript pour faire tourner des photos sur ma bannière . Mon code css est img { width:900px; height:250px; display: inline-block; margin-top: 5px; margin-bottom: 5px; margin-left: 175px; border-radius: 15px; box-shadow: 0px 4px 4px #1c1a19; } Du coup je ne peux plus mettre d'autres photos sur ma page car elle prennent le même format (même avec un Id ). Merci pour votre réponse. A+ Claudio
Je suis actuellement le cours et j'ai un problème.
Dans la partie "socket.io", lorsque j'essai de tester le code, rien ne s'affiche dans la console et à l'adresse http://localhost:8080 j'ai une page blanche.
bonjour , j'ai besoin de vous aides s'il te plait j'ai un tableau comme ça :
var r1 = new Record("2014-01-01", "Maroc", "Rabat", "Diesel", "100", "10000");
var r2 = new Record("2014-01-01", "Maroc", "Rabat", "Essence", "100", "10000");
var r3 = new Record("2014-08-01", "Maroc", "Rabat", "Essence", "50", "2500");
var r4 = new Record("2014-02-01", "Maroc", "Casablanca", "Essence", "50", "2500");
var r5 = new Record("2014-07-01", "Maroc", "Casablanca", "Diesel", "90", "9000");
var r6 = new Record("2014-02-01", "Maroc", "Casablanca", "Essence", "50", "2500");
var r7 = new Record("2014-04-01", "Maroc", "Marrakech", "Essence", "50", "2500");
var r8 = new Record("2014-06-01", "Maroc", "Marrakech", "Essence", "50", "2500");
var r9 = new Record("2014-06-01", "Maroc", "Marrakech", "Diesel", "70", "7000");
var r10 = new Record("2014-03-01", "Maroc", "Casablanca", "Diesel", "80", "8000");
et j'ai besoin de calculer les champs identique qu'il a la même date par exemple r1 et r2 ils sont identiques , j'ai besoin de calculer les 2 dernier champ qui ont les nombre 100 , 1000 par une fonction somme , merci d'avance
- Edité par chakourhatim 27 janvier 2015 à 12:48:05
Tu devra voir un script d'une calculatrice pour voir comment ça fonctionne et mieux gérer les variables. Pour mon cas, quand je suis bloqué je prends conseil auprès des connaisseurs.
mon probleme est +/- simple: J'arrive pas à lancer le Chat sur le port demandé.
Je m'explique: Quand je lance le serveur et vais sur la page présumée ( dans mon cas localhost:2901), je recois juste le message (Chat server works !!).
J'ai essayé de mettre mon code avant la res.end mais ca change rien.
C'est où l'erreur ?
voici la page appserver.js
var http = require('http');
var md5 = require('MD5');
httpServer = http.createServer(function(req, res) {
res.end("Chat server works !!");
});
httpServer.listen("2901"); //Listen to port 2901
var io = require('socket.io').listen(httpServer);
var usersConnected = {};
var messagesPosted = [];
var history = 2;
//Listening
io.sockets.on('connection', function(socket) { //User calls the website
var me=false;
for(var user in usersConnected)
{
socket.emit("newUser", usersConnected[user]);
}
for(var msg in messagesPosted)
{
socket.emit("newMsg", messagesPosted[msg]);
}
socket.on('login', function(user) {
me = user;
me.id = user.mail.replace("@", "_").replace(/\./g, "_");
me.avatar = "https://gravatar.com/avatar/" + md5(user.mail) + "?s=50";
usersConnected[me.id] = me;
io.sockets.emit("newUser", me);
socket.emit("logged", me);
});
socket.on('disconnect', function(){
if(!me) return false;
io.sockets.emit("disconnectUser", me);
delete usersConnected[me.id];
});
socket.on("newMsg", function(message){
if(!me) {
socket.emit("errMsgNoLog");
return;
}
message.user = me;
date = new Date();
message.h = date.getHours();
message.m = date.getMinutes()
messagesPosted.push(message);
if(messagesPosted.length > history)
{
messagesPosted.shift();//Delete the oldest saved message
}
io.sockets.emit("newMsg", message); });
});
j'ai résolu le probleme en mettant un ptit sendFile à la place du res.end (logique vous me dites !)
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
Maintenant je peux acceder à ma page à travers le port désiré, mais l'affichage css n'est plus là. Il y a un changement à faire coté client, mais j'arrive pas à trouver la faille :/
hello i want to create a thread with nodeJs but i didn't find any document to help me.just i find that nodeJs didn't support multiThreading help me please
mon probleme est +/- simple: J'arrive pas à lancer le Chat sur le port demandé.
Je m'explique: Quand je lance le serveur et vais sur la page présumée ( dans mon cas localhost:2901), je recois juste le message (Chat server works !!).
J'ai essayé de mettre mon code avant la res.end mais ca change rien.
C'est où l'erreur ?
voici la page appserver.js
var http = require('http');
var md5 = require('MD5');
httpServer = http.createServer(function(req, res) {
res.end("Chat server works !!");
});
httpServer.listen("2901"); //Listen to port 2901
var io = require('socket.io').listen(httpServer);
var usersConnected = {};
var messagesPosted = [];
var history = 2;
//Listening
io.on('connection', function(socket) { //User calls the website
var me=false;
for(var user in usersConnected)
{
socket.emit("newUser", usersConnected[user]);
}
for(var msg in messagesPosted)
{
socket.emit("newMsg", messagesPosted[msg]);
}
socket.on('login', function(user) {
me = user;
me.id = user.mail.replace("@", "_").replace(/\./g, "_");
me.avatar = "https://gravatar.com/avatar/" + md5(user.mail) + "?s=50";
usersConnected[me.id] = me;
socket.emit("newUser", me);
socket.emit("logged", me);
});
socket.on('disconnect', function(){
if(!me) return false;
socket.emit("disconnectUser", me);
delete usersConnected[me.id];
});
socket.on("newMsg", function(message){
if(!me) {
socket.emit("errMsgNoLog");
return;
}
message.user = me;
date = new Date();
message.h = date.getHours();
message.m = date.getMinutes()
messagesPosted.push(message);
if(messagesPosted.length > history)
{
messagesPosted.shift();//Delete the oldest saved message
}
socket.emit("newMsg", message); });
});
Bonjour,
Essaye le code, je l'ai changé. Ce qui n'allait pas c'est que tu charge ton module socket.io dans une variable io. Donc tu dois utilisé io.on('connection', function{[...]}). Et après, tu dois utiliser socket.emit() ou socket.on(). Et un petit dernier conseil, indente ton code, je sais pas si c'est parce que tu as copié collé mais tu veras ça sera beaucoup plus lisible.
hello i want to create a thread with nodeJs but i didn't find any document to help me.just i find that nodeJs didn't support multiThreading help me please
Hi sassousassu,
Node.js is only single thread...in theory. I just found an article about your question : Node is not Single Thread
j'ai résolu le probleme en mettant un ptit sendFile à la place du res.end (logique vous me dites !)
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
Maintenant je peux acceder à ma page à travers le port désiré, mais l'affichage css n'est plus là. Il y a un changement à faire coté client, mais j'arrive pas à trouver la faille :/
- Edité par Mizu27 le 7 février 2015 à 11:56:32
Hello
Je n'ai pas vu tout ton code, mais en me basant sur ce que je vois, je pourrais deviner qu'il te faut servir les ressources statiques de ton site.
En gros, la route / sert le fichier index.html parce que tu le fais de manière explicite avec res.sendFile(__dirname + '/index.html'); Maintenant imagine que tu doive faire la même chose avec tes CSS, images, ... etc. C'est pour cela qu'on utilise généralement un middleware pour gérer les ressources statiques :
Note : Prendre l'habitude d'utiliser path.join() pour concaténer les chemins d'accès sur disque (http://nodejs.org/docs/latest/api/path.html#path_path_join_path1_path2)
Bonjour! Je crois que dans le cour sur la page http://openclassrooms.com/courses/des-applications-ultra-rapides-avec-node-js/les-evenements-18 il y aurais une faute de 'ponctuation' si je peux dire dans l'exemple:
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200);
res.end('Salut tout le monde !');
});
server.on('close', function() { // On écoute l'évènement close
console.log('Bye bye !');
})
server.listen(8080); // Démarre le serveur
server.close(); // Arrête le serveur. Déclenche l'évènement close
5 lignes avant la fin il manque le ' ; ' j'ai essayé avec et sans et fonctionne très bien mais je veux être certain de si j'ai raison. Si oui proposé la correction.
j'ai un soucis avec mon application; les données sont bien envoyés au serveur mais au moment de les renvoyés au client firefox m'affiche un message à propos du cross-origin-request (CORS). J'ai essayé d'ajouter le writeHead('Access-Control-Allow-Origin': '*') mais ça fonctionne pas.
Je recherche un petit groupe de personne de niveau débutant-intermédiaire en JavaScript pour faire des mini-projets en JS ou d'autres languages. Chat interactif, horloge, etc.
Je suis débutant en JS mais pas en programmation (je connais les bases du shell Unix, j'ai fait pas mal de programmation en Ada auparavant.).
j'ai un soucis avec mon application; les données sont bien envoyés au serveur mais au moment de les renvoyés au client firefox m'affiche un message à propos du cross-origin-request (CORS). J'ai essayé d'ajouter le writeHead('Access-Control-Allow-Origin': '*') mais ça fonctionne pas.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon grand père disait : "Rien n'est ni beau, ni laid, ni bon, ni mauvais mais simplement ce que l'on aime ou pas !"
L’éternel débutant...