nodejs+mqtt协议的聊天室

安装nodejs

  1. yum install libtool automake autoconf gcc-c++ openssl-devel
  2. wget https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz
  3. tar zxvf node-v0.12.7.tar.gz
  4. cd node-v0.12.7
  5. ./configure
  6. make
  7. make install

检测是否安装成功

  1. node -v

选择安装mqtt broker

这里选择mosca,在项目目录执行

  1. npm install mosca --save

会生成目录node_modules,目录包含项目所需要的模块,里面已经有mosca模块。

服务端代码

  1. var mosca = require("mosca");
  2. var broker = new mosca.Server({});
  3. var express = require("express");
  4. var http = require("http");
  5. var app = express()
  6. var srv = http.createServer(app)
  7. var path = require("path");
  8. app.use(express.static(path.dirname(require.resolve("mosca")) + "/public"))
  9. app.listen(3000)

运行

  1. sudo npm install forever -g
  2. forever start -l app.log -o out.log -e err.log -a mqtt/app.js

客户端测试

新建index.html

  1. <html>
  2. <head>
  3. <script src="/mqtt.js"></script>
  4. </head>
  5. <body>
  6. <script>
  7. var client = mqtt.connect();
  8. client.subscribe("mqtt/demo");
  9. client.on("message", function(topic, payload) {
  10. alert([topic, payload].join(": "));
  11. client.end();
  12. });
  13. client.publish("mqtt/demo", "hello world!");
  14. </script>
  15. </body>
  16. </html>
来自为知笔记(Wiz)