Problèmes pour un réseau de machines à café

Le problème exposé dans ce sujet a été résolu.

Je ne parle pas de tout réécrire… Mais plutôt d'en recréer une version simple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var mosca = require('mosca')

var ascoltatore = {
  //using ascoltatore
  type: 'mongo',
  url: 'mongodb://localhost:27017/mqtt',
  pubsubCollection: 'ascoltatori',
  mongo: {}
};

var settings = {
  port: 1883,
  backend: ascoltatore
};

server.on('clientConnected', function(client) {
    console.log('client connected', client.id);
});

// fired when a message is received
server.on('published', function(packet, client) {
  console.log('Published', packet.payload);
  if ((packet.topic.indexOf('tables/') > -1)) {
     //Traitement de toutes les publications des tables (tables/*)
  }
});

var server = new mosca.Server(settings);
server.on('ready', setup);

// fired when the mqtt server is ready
function setup() {
  console.log('Mosca server is up and running')
}

Et oui c'est un discourt un peu marketing, mais tu avoueras que tu ne peux pas implémenter un broker avec si peu de ligne en PHP ?

+0 -0

Bah tu utilise en fait un truc tout fait, la… Tu n'as rien recréé, mais juste instancié un broker existant en JS, ça n'a rien de bien sorcier.

Je ne sais pas ce que ça donnerait en PHP (langage que je ne connais pas particulièrement bien, et dont je ne suis absolument pas fan d'ailleurs), mais comme PHP n'est pas asynchrone ce n'est pas spécialement adapté non plus.

Ce qui est marrant (et un peu original), c'est que ce broker n’implémente visiblement pas le coeur du mécanisme de PUB/SUB par lui même, qui est délégué a d'autres systèmes (cf. la FAQ).

Merci Yoch pour les précisions réseau sur MQTT.
Il serait intéressant effectivement que j'apprenne NodeJS mais le but de ce projet est plus de mettre en pratique mes connaissances que d'en acquérir de nouvelles.
Sinon je viens de lire un article de Vayel sur le protocole WAMP (actuellement en "une") et je pense que c'est une bonne solution pour mettre en place une architecture Pub/Sub. Qu'en pensez-vous ?

Je ne connais pas super bien les défauts / qualités de wamp, mais il me semble que c'est une bonne solution (peut être encore un peu trop confidentielle a ce jour). L'avantage qui saute aux yeux, c'est d'avoir une couche RPC associée au PUB/SUB, comme expliqué ici. (le fait qu'il soit pensé pour fonctionner sur websocket est nettement moins intéressant depuis que MQTT le permet également, pour les autres protocoles je n'en sais rien).

Ensuite, ça va surtout dépendre des possibilités de tes cafetières, je sais qu'il existe des libs MQTT pour arduino, mais je n'en sais rien pour wamp et consorts.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte